如何在离线时安装npm包?

时间:2017-03-28 08:14:13

标签: 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?

感谢您的帮助。

7 个答案:

答案 0 :(得分:18)

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

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

由于所有这些步骤都失败了(您没有安装依赖项,因此无法在预期位置上使用,并且无法下载),安装失败。

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

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

答案 1 :(得分:13)

截至2016年,有几种软件可供使用。

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

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

yarn开箱即用。

答案 2 :(得分:2)

简短的回答,你不能。大多数NPM包(例如@angular/cli)需要其他依赖项,而那些需要子依赖项,这些依赖项会在您运行npm install

时安装

但是,您可以在网络上安装cli,并在离线时使用它。

答案 3 :(得分:2)

问题:我遇到过类似的情况,无法在本地计算机上(离线)安装express.jspackage.json指定的所有其他依赖项, npm 由于无法连接互联网。

解决方案:我有一个可以在 Windows 上运行的解决方案(不确定其他平台),通过它我安装了express具有所有依赖项的框架我需要的项目包括cookie-parserjademorgan等。


步骤:

  1. 将所有软件包安装在可访问Internet的远程计算机上。
    就我而言,我在远程计算机和本地计算机上都使用了 Windows ,而我的要求是在本地计算机上安装express.js。因此,我在远程计算机上运行以下命令以安装express.js

    C:\Users>npm install -g express-generator`
    
  2. 安装express.js后,我使用以下方法在远程计算机上创建了一个应用程序:

    C:\Users\Name\Desktop>express Project`
    
    C:\Users\Name\Desktop\Project>npm install -g =>to install all other dependencies globally*
    
  3. 现在浏览到npm的全局模块的存储位置,您可以通过以下方式查看该位置

    C:\Users>npm config get prefix
    

    通常在 Windows

    C:\Users\{Username}\AppData\Roaming\
    
  4. 只需复制远程计算机的npmnpm-cache文件夹。

  5. 并放置两个复制的文件夹,即。 npmnpm-cache进入本地计算机的相同位置

    C:\Users\{Username}\AppData\Roaming\
    

答案 4 :(得分:1)

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

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

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

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

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

答案 5 :(得分:1)

在线计算机:

npm install -g offline-npm

将 npm-module 复制到离线电脑上就可以了!

答案 6 :(得分:0)

您可以在此处找到npm install命令文档:https://docs.npmjs.com/cli/install

我不太确定,不幸的是,我现在没有机会自己测试,但我会尝试解压缩文件夹并删除点,就像这样: npm install / angular-cli-master (=安装文件夹而不是zip文件) 或者只是添加如下结尾的zip文件: npm install ./angular-cli-master.tgz
(=安装zip文件而不是文件夹,文件结尾可能是.zip或其他东西)