npm 使用 tarball 全局离线安装包

npm 使用 tarball 全局离线安装包

根据npm 文档,这应该可行;

npm install ./package.tgz

因此,我针对从以下位置下载的 pm2 tarfile 全局尝试此操作pm2 github repo 发布页面

npm install -g ./pm2-3.2.2.tar.gz

但我得到了这个;

npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://registry.npmjs.org/@pm2%2fagent failed, reason: getaddrinfo ENOTFOUND nb nb:443
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-01-29T08_16_17_112Z-debug.log

-

npm version: 5.6.0
node version: 9.4.0

这是一个错误吗?

还有其他方法可以离线安装 pm2(和任何其他)包吗?

答案1

我发现我也需要注意包的依赖关系。我在这个答案中找到了解决方案类似的问题

好吧……经过一天尝试使用上述参考资料(npmbox 或 offline-npm)后,我想到了一个更简单的方法。我不得不说,这要感谢 npmbox。这个想法是保留具有在线访问权限的实例的缓存,然后在离线实例中使用它。

在有互联网的机器上:

1 - 清除 npm 缓存:npm cache clear

2 - 安装包,假设是 xyz:npm install -g 包.xyz

3 - 将缓存复制到一个文件夹中...我们随便叫它什么都可以(我假设 npm 缓存在根文件夹中,但不太确定):cp -R /.npm/*/缓存文件夹

在没有互联网的机器上:

4-将此缓存文件夹带到没有互联网的实例,然后清除缓存并进行安装(我不会指示如何复制文件夹:)

npm 缓存清除

npm 安装--global--cache/缓存文件夹--可选 --cache-min 99999999999 --shrinkwrap false包.xyz

完毕

答案链接:https://stackoverflow.com/a/43793301/169534

相关内容