如何在离线时安装npm包?

Dor*_*rni 30 node.js npm visual-studio-code angular-cli

我正在离线网络工作,并希望使用npm安装angular-cli.我有一个angular-cli的zip文件,并使用最新的节点和npm版本.我使用命令:npm install ./angular-cli-master从文件夹安装angular-cli.但我一直得到这个错误告诉我,我没有互联网连接(这没关系).那么如何使用我从github下载的zip在离线时安装这个angular-cli?

谢谢你的帮助

Dra*_*SAN 22

您只需复制node_modules文件夹中的包和所有依赖项,在本地安装项目内,或在全局安装中的全局文件夹中(npm config get prefix以查看它所在的位置).

行为npm install是检查依赖项,并首先安装它们.如果找不到它们,也没有包含它们的本地文件,它会尝试下载它们.

由于所有这些步骤都失败了(您没有安装依赖项,它在预期的位置上不可用,并且无法下载),安装失败.

你可以在package.json每个模块中找到依赖列表,但由于它是递归的,如果你手动完成所有设置,可能需要很长时间,npm通过递归来完成.

对您而言,最简单的方法是在连接的PC上创建一个新文件夹,在其中npm install angular-cli,压缩文件夹并将其传输到离线机器上.

  • 当然,如果您的包构建本机扩展,那可能不起作用 (4认同)
  • `npm root -g` 获取全局node_modules路径 (4认同)

use*_*582 20

截至2016年,有几个软件可用.

https://addyosmani.com/blog/using-npm-offline/

截至目前(2017年5月)随着Npm 5的出现,你可以使用旗帜:--prefer-offline.

npm install 开箱即用.


Oli*_*ver 5

2019 年,我发现没有推荐的方法适用于无法访问互联网的“气隙”服务器。

我发现唯一的解决方案是在 Windows 上使用 artillery.io 作为示例:

  1. 将软件包安装在可以访问互联网的计算机上,例如本地开发计算机。npm install -g artillery
  2. 浏览至C:\Users\{username}\npm
  3. 拉上拉链\node_modules\artillery(例如 artillery.7z)
  4. 将 zip 和文件(位于 npm 文件夹的根目录)复制artilleryartillery.cmd服务器
  5. 将这两个粘贴artilleryartillery.cmd服务器 npm 文件夹的根目录 ( C:\Users\{serverusername}\npm)
  6. 将 zip 解压至C:\Users\{serverusername}\npm\node_modules

这是仅适用于一种工具的复杂版本。如果本地计算机的 npm 文件夹中的工具相对较少,您始终可以压缩整个npm文件夹并将其复制+解压到服务器上。

npm pack我仍然认为即使在使用和时 npm 仍然坚持尝试连接到注册表,这很奇怪npm install -g <tarfile>