我有一个脚本,可以在启动时自动安装一些--global实例的npm包(特别是业务,我想用--global安装)。 问题是npm有时会随机失败,大概是由于networking打嗝,虽然我不完全确定是怎么回事。
为了排除networking,我想要做的就是下载npm的相关文件,并要求它在S3下载文件时根据这些文件安装业力。
但是我怎么做? 我如何告诉npm不要从中央存储库抓取文件,而是从其他地方抓取它们?
您必须首先全局安装npmbox模块,该模块将创build一个脱机包,其中包含给定模块的所有依赖项。 然后,您可以使用npmunbox命令将该程序包安装到脱机机器上。
要安装npmbox: npm install -g npmbox
要创build一个模块的脱机包: npmbox -v localtunnel ,它会生成一个localtunnel.npmbox文件到当前目录。 复制你的离线机器。
要安装离线软件包: npmunbox localtunnel.npmbox
欲了解更多信息: https : //github.com/arei/npmbox
我已经写了一个简单而透明的工具来使用npm的离线caching进行npm install
安装PM2离线: –
在RHEL-7上的Node-v6.10.3和Npm-3.10.10上进行testing
转到与互联网连接的机器: –
#npm install -g npmbox #npmbox npmbox #scp npmbox.npmbox root@offline-server-ip:.
去没有互联网连接的机器: –
#ssh root@offline-server-ip #tar --no-same-owner --no-same-permissions -xvzf npmbox.npmbox #npm install --global --cache ./.npmbox.cache --optional --cache-min 99999999999 --shrinkwrap false npmbox
转到与互联网连接的机器: –
#npm install pm2 -g #npmbox pm2 #scp pm2.npmbox root@offline-server-ip:.
去没有互联网连接的机器: –
#npmunbox pm2.npmbox --global #pm2 ls