npm pack - npm install .tgz 离线安装 前端开发环境

npm pack - npm install .tgz 离线安装 前端开发环境

为什么有这个需求

曾经出差,到一个机构里面,里面是局域网,没有外网。后台都是java,刻录个光盘,然后就把开发环境装好了,就直接开发了。
我进去后,由于不能离线安装开发环境,导致楼上楼下跑,效率极低,开发还特别慢。

延展

  1. 开发electronjs,那搞一个开发环境,能慢死。而且下次再开发,又装环境的时候,又得脑袋疼一波。用离线安装方式,就直接解决了痛点。
  2. 有些项目,copy回家,继续搞,家里网不好。用离线安装。
  3. 做一些教学,把开发代码发给学生们。这样好学好练习。

原理

npm pack 可以将一个库打包成 xxx.tgz
npm instal xxx-tag.tgz 可以将 压缩包离线安装
然后看到一个项目,批量打包,来的灵感。之前研究过离线安装,都失败了,这次测试是ok的。
https://gitee.com/git_zs/output_tgz_npm
上面这个项目 的打包过程不是很好。我改为针对手工操作了。

重点 备份package.json

备份package.json 备份package.json 备份package.json 重要的事情说三遍。
离线安装后会修改package.json

第一步 正常安装一遍

npm install

第二步 pack

将package.json 里面的 dependencies 和 devDependencies 都copy到一个文本中
然后只要名字 再拼个字符串 最后都弄成一行 用& 连接

pack.bat

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

第三步 move

把这些tgz的包 都放到n的目录,具体名字自己看都行

第四步 install (可以换个目录,copy代码,不要带上node_modules)

附送个获取文件名 dir > a.txt

install.bat

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

本项目特殊

由于有的文件不好下载,所以通过特殊手段,离线下载后,再copy到包里
copy.bat

copy .\node_sqlite3.node .\node_modules\sqlite3\lib\binding\napi-v6-win32-unknown-x64\node_sqlite3.node

最后就能运行 npm run dev

posted @ 2022-06-29 17:36  彭成刚  阅读(4072)  评论(0编辑  收藏  举报