如何在离线服务器上安装npm -g
我需要在离线服务器上安装“全局”npm应用程序。
安装正常的应用程序很容易:
npm install
然后打包生成的文件。 手动或使用npm包 。
但是,如何在没有Internet的情况下安装全局应用程序(具有某种安装脚本)?
npm install -g forever
试试npmbox ,它是npmzip的新名称,它允许你通过一个文件安装离线npm包
你可以从tarball文件中安装东西,查看npm文档 。 你可以用npm view forever dist.tarball
find永久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>
,或者只是手动打开它。
安装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**
完成