离线安装 npm 包

离线安装 npm 包

我有一个脚本,可以在启动时自动在 EC2 实例上安装一些 npm 包(特别是 karma,我想用 来安装--global)。问题是 npm 有时会随机失败,可能是由于网络故障,但我并不完全确定发生了什么。

为了排除网络,我想要做的是下载 npm 的相关文件,并要求它根据我从 S3 下载的文件安装 karma。

但是我该怎么做呢?我该如何告诉 npm 不要从中央存储库抓取文件,而是从其他地方抓取?

答案1

您必须首先npmbox全局安装模块,此模块会创建一个包含给定模块所有依赖项的离线包。然后您可以使用npmunbox命令将该包安装到您的离线机器。

要安装 npmbox:npm install -g npmbox

要创建模块的离线包:npmbox -v localtunnel,它将localtunnel.npmbox在当前目录中生成一个文件。将其复制到您的离线机器上。

安装离线包:npmunbox localtunnel.npmbox

更多信息:https://github.com/arei/npmbox

答案2

我编写了一个简单透明的工具来npm install使用 npm 的离线缓存

请参见https://github.com/harish2704/npm-offline-registry

答案3

离线安装 PM2:-

在 RHEL-7 上的 Node-v6.10.3 和 Npm-3.10.10 上进行了测试

前往具有互联网连接的机器:-

#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

相关内容