如何在离线服务器上安装npm -g

我需要在离线服务器上安装“全局”npm应用程序。

安装正常的应用程序很容易:

npm install 

然后打包生成的文件。 手动或使用npm包

但是,如何在没有Internet的情况下安装全局应用程序(具有某种安装脚本)?

 npm install -g forever 

试试npmbox ,它是npmzip的新名称,它允许你通过一个文件安装离线npm包

你可以从tarball文件中安装东西,查看npm文档 。 你可以用npm view forever dist.tarballfind永久tarball的URL并下载它。 尝试这样的事情:

 curl -so forever.tar.gz `npm view forever dist.tarball 2> /dev/null` npm install ./forever.tar.gz -g 

但是您也可能需要为所有依赖关系执行此操作。 可能有更好的方法,但这是我在search中find的。

我创build了offline-npm,以便以干净的方式安装所有依赖项。 对于没有使用node-gyp的模块,一切都应该如上所述。

如果您需要node-gyp (通常在线安装),请考虑将〜/ .node-gyp复制到该脱机机器。

尝试npmzip

 npm install -g npmzip npmzip <package> 

你会在当前目录下得到这个tarball,这个可能会被移动到目标机器上,并且:

 npmunzip <tarball> 

在package.json中列出bundledDependencies中的依赖bundledDependencies ,然后运行npm pack来创build一个tarball。 把它交给另一台机器,或者npm install <tarball> ,或者只是手动打开它。

https://github.com/npm/npm/issues/1349

安装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 

那么….经过一天的努力,使上面的参考(npmbox或离线-npm)工作想出了更简单的方法。 感谢npmbox我不得不说。 这个想法是保持从在线访问的实例caching,然后在离线使用它。

在与互联网的机器:

1 – 清除npmcaching: npm cache clear

2 – 安装软件包,可以说它的xyz: npm install -g **package.xyz**

3 – 将caching复制到一个文件夹…让我们调用它什么(我假设npmcaching是在根文件夹中,不完全确定): cp -R /.npm/* **/cache-whatever-folder**

在没有互联网的机器中:

4 – 把这个caching任意文件夹到没有互联网的实例,然后清理caching并安装它(我不会指出如何复制文件夹:)

npm cache clear

npm install --global --cache **/cache-whatever-folder** --optional --cache-min 99999999999 --shrinkwrap false **package.xyz**

完成