如何在脱机服务器上安装npm -g

Pet*_*r B 27 offline node.js npm

我需要在脱机服务器上安装"全局"npm应用程序.

安装普通应用程序很容易:

npm install
Run Code Online (Sandbox Code Playgroud)

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

但是,如何安装全局应用程序(具有某种安装脚本),例如永远没有Internet?

npm install -g forever
Run Code Online (Sandbox Code Playgroud)

kam*_*mil 20

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

  • npmbox是一个死的项目.不要打扰. (11认同)

Cod*_*ity 18

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

curl -so forever.tar.gz `npm view forever dist.tarball 2> /dev/null`
npm install ./forever.tar.gz -g
Run Code Online (Sandbox Code Playgroud)

但是您可能必须为所有依赖项执行此操作.可能有更好的方法,但这是我在搜索中发现的.


Fra*_*cho 7

好吧......经过一天尝试使其与上述引用(npmbox或offline-npm)一起工作后,想出了一些更简单的方法.感谢npmbox我不得不说.我们的想法是将缓存保留在具有在线访问权限的实例中,然后在一个脱机中使用它.

在有互联网的机器上:

1 - 清除npm缓存: npm cache clear

2 - 安装包,让我们说它的xyz: npm install -g **package.x.y.z**

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

在没有互联网的机器上:

4 - 将这个cache-whatever-folder放到没有互联网的实例上,然后清理缓存并用它安装(我不会说明如何复制文件夹:)

npm cache clear

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

完成


小智 5

离线安装 PM2:-

在 Node-v6.10.3 和 Npm-3.10.10 上在 RHEL-7 上测试

转到具有互联网连接的机器:-

#npm install -g npmbox
#npmbox npmbox
#scp npmbox.npmbox root@offline-server-ip:.
Run Code Online (Sandbox Code Playgroud)

在没有互联网连接的情况下进入机器:-

#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
Run Code Online (Sandbox Code Playgroud)

转到具有互联网连接的机器:-

#npm install pm2 -g
#npmbox pm2
#scp pm2.npmbox root@offline-server-ip:.
Run Code Online (Sandbox Code Playgroud)

在没有互联网连接的情况下进入机器:-

#npmunbox pm2.npmbox --global
#pm2 ls
Run Code Online (Sandbox Code Playgroud)