npm pack - npm install .tgz 离线安装 前端开发环境
<p>npm pack - npm install .tgz 离线安装 前端开发环境</p><h1 id="为什么有这个需求">为什么有这个需求</h1>
<p>曾经出差,到一个机构里面,里面是局域网,没有外网。后台都是java,刻录个光盘,然后就把开发环境装好了,就直接开发了。<br>
我进去后,由于不能离线安装开发环境,导致楼上楼下跑,效率极低,开发还特别慢。</p>
<h1 id="延展">延展</h1>
<ol>
<li>开发electronjs,那搞一个开发环境,能慢死。而且下次再开发,又装环境的时候,又得脑袋疼一波。用离线安装方式,就直接解决了痛点。</li>
<li>有些项目,copy回家,继续搞,家里网不好。用离线安装。</li>
<li>做一些教学,把开发代码发给学生们。这样好学好练习。</li>
</ol>
<h1 id="原理">原理</h1>
<p>npm pack 可以将一个库打包成 xxx.tgz<br>
npm instal xxx-tag.tgz 可以将 压缩包离线安装<br>
然后看到一个项目,批量打包,来的灵感。之前研究过离线安装,都失败了,这次测试是ok的。<br>
https://gitee.com/git_zs/output_tgz_npm<br>
上面这个项目 的打包过程不是很好。我改为针对手工操作了。</p>
<h1 id="重点-备份packagejson">重点 备份package.json</h1>
<p>备份package.json 备份package.json 备份package.json 重要的事情说三遍。<br>
离线安装后会修改package.json</p>
<h1 id="第一步-正常安装一遍">第一步 正常安装一遍</h1>
<p>npm install</p>
<h1 id="第二步-pack">第二步 pack</h1>
<p>将package.json 里面的 dependencies 和 devDependencies 都copy到一个文本中<br>
然后只要名字 再拼个字符串 最后都弄成一行 用& 连接</p>
<p>pack.bat</p>
<pre><code>npm pack debug & npm pack koa & npm pack koa-bodyparser & npm pack koa-convert & npm pack koa-json & npm pack koa-logger & npm pack koa-onerror & npm pack koa-router & npm pack koa-send & npm pack koa-static & npm pack koa2-cors & npm pack mime-types & npm pack mysql & npm pack open & npm pack sqlite & npm pack cross-env & npm pack nodemon & npm pack pkg & npm pack portfinder
</code></pre>
<h1 id="第三步-move">第三步 move</h1>
<p>把这些tgz的包 都放到n的目录,具体名字自己看都行</p>
<h1 id="第四步-install-可以换个目录copy代码不要带上node_modules">第四步 install (可以换个目录,copy代码,不要带上node_modules)</h1>
<p>附送个获取文件名 dir > a.txt</p>
<p>install.bat</p>
<pre><code>npm install n\cross-env-7.0.3.tgz & npm install n\debug-4.3.4.tgz & npm install n\koa-2.13.4.tgz & npm install n\koa-bodyparser-4.3.0.tgz & npm install n\koa-convert-2.0.0.tgz & npm install n\koa-json-2.0.2.tgz & npm install n\koa-logger-3.2.1.tgz & npm install n\koa-onerror-4.2.0.tgz & npm install n\koa-router-10.1.1.tgz & npm install n\koa-send-5.0.1.tgz & npm install n\koa-static-5.0.0.tgz & npm install n\koa2-cors-2.0.6.tgz & npm install n\mime-types-2.1.35.tgz & npm install n\mysql-2.18.1.tgz & npm install n\nodemon-2.0.18.tgz & npm install n\open-8.4.0.tgz & npm install n\pkg-5.7.0.tgz & npm install n\portfinder-1.0.28.tgz & npm install n\sqlite-4.1.1.tgz & npm install .\sqlite3-5.0.8.tgz
</code></pre>
<h1 id="本项目特殊">本项目特殊</h1>
<p>由于有的文件不好下载,所以通过特殊手段,离线下载后,再copy到包里<br>
copy.bat</p>
<pre><code>copy .\node_sqlite3.node .\node_modules\sqlite3\lib\binding\napi-v6-win32-unknown-x64\node_sqlite3.node
</code></pre>
<p>最后就能运行 npm run dev</p>
</div>
<div id="MySignature" role="contentinfo">
---------------------------------------------<br>
生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!<br><br>
https://pengchenggang.github.io/vuejsdev-com-github/ <br><br>
SMART原则:<br><br>
目标必须是具体的(Specific)<br>
目标必须是可以衡量的(Measurable)<br>
目标必须是可以达到的(Attainable)<br>
目标必须和其他目标具有相关性(Relevant)<br>
目标必须具有明确的截止期限(Time-based)<br><br><br>
来源:https://www.cnblogs.com/pengchenggang/p/16424338.html
頁:
[1]