NodeJS 如何在离线时安装npm软件包?

bvk5enib  于 2022-11-22  发布在  Node.js
关注(0)|答案(8)|浏览(723)

我正在脱机网络上工作,希望使用npm安装angular-cli。我有一个angular-cli的zip文件,使用的是最新的节点和npm版本。我正在使用以下命令:npm install ./angular-cli-master从文件夹安装angular-cli。但是我一直收到这个错误消息,告诉我我没有互联网连接(这是可以的)。那么我如何在脱机时使用从Github下载的zip文件安装这个angular-cli呢?
谢谢你的帮助。

gg58donl

gg58donl1#

您只需将软件包和所有依赖项复制到node_modules文件夹中,对于本地安装,复制到项目中,对于全局安装,复制到全局文件夹(npm config get prefix可查看其位置)中。
npm install的行为是检查依赖项,并首先安装它们。当它没有发现它们已安装,也没有找到包含它们的本地文件时,它会尝试下载它们。
由于所有这些步骤都失败(您没有安装依赖项,它在预期位置不可用,并且无法下载),因此安装失败。
你可以在每个模块的package.json中找到依赖列表,但是由于它是递归的,如果你手动设置的话,可能需要很长的时间才能把所有的东西都设置好,npm通过递归来完成。
对您来说,最简单的方法是在连接的PC上创建一个新文件夹,然后在其中npm install angular-cli,压缩该文件夹并将其传输到脱机机器上。

b1uwtaje

b1uwtaje2#

2016年1月-查看Addy Osmani对offline installation of npm packages的建议
2017年5月-as of npm 5,您可以将--prefer-offline标志传递给npm install

yarn开箱即用。

krcsximq

krcsximq3#

在2019年,我发现没有推荐的方法适用于没有互联网接入的“空气间隙”服务器。
我发现唯一的解决方案是,在Windows上,以artillery.io为例:
1.安装软件包在一个机器上与互联网访问,例如. local dev machine. npm install -g artillery
1.浏览到C:\Users\{username}\npm
1.拉上\node_modules\artillery的拉链(例如,炮兵.7z)
1.将zip和文件artilleryartillery.cmd(位于npm文件夹的根目录)复制到服务器
1.将两个artilleryartillery.cmd粘贴到服务器的根npm文件夹(C:\Users\{serverusername}\npm
1.将zip解压缩到C:\Users\{serverusername}\npm\node_modules
这是一个复杂的版本,如果你的本地机器的npm文件夹的工具相对较少,你可以直接压缩整个npm文件夹,然后复制+解压到服务器上。
我仍然认为,即使在使用npm packnpm install -g <tarfile>时,npm仍然坚持尝试连接到注册表,这很奇怪

ar7v8xwq

ar7v8xwq4#

问题:我曾经遇到过类似的情况,由于互联网连接不可用,我无法使用npm在我的本地计算机(脱机)上安装express.jspackage.json指定的所有其他依赖项。
解决方案:我有一个适用于 Windows(不太确定是否适用于其他平台)的解决方案,通过该解决方案,我安装了express框架,其中包含项目所需的所有依赖项,包括cookie-parserjademorgan等。

操作步骤:
1.在可以访问Internet的远程计算机上安装所有软件包。
在我的例子中,我在远程和本地机器上都使用 Windows,我的要求是在本地机器上安装express.js

C:\Users>npm install -g express-generator`

1.安装express.js后,我在远程计算机上创建了一个应用程序,使用:

C:\Users\Name\Desktop>express Project`

C:\Users\Name\Desktop\Project>npm install -g =>to install all other dependencies globally*

1.现在浏览到存储npm的全局模块的位置,您可以通过

C:\Users>npm config get prefix

一般在 Windows

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

1.只需将npmnpm-cache文件夹复制到远程计算机。
1.并将两个复制的文件夹(即npmnpm-cache)放置到本地计算机中

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

0qx6xfy65#

大多数NPM包,比如@angular/cli,需要其他依赖项,而那些需要子依赖项的包在运行npm install时安装
但是,您可以在网络上安装cli,并在脱机时使用它。

rnmwe5a2

rnmwe5a26#

您可以在以下位置找到npm install命令文档:https://docs.npmjs.com/cli/install
我不是很确定,不幸的是,我没有机会测试它自己现在,但我会尝试要么解压文件夹,并删除点,像这样:npm install /angular-cli-master(=安装一个文件夹而不是zip文件)或仅添加以如下方式结尾的zip文件:npm安装。/angular-cli-master.tgz
(=安装zip文件而不是文件夹,文件结尾可能是.zip或其他内容)

c2e8gylq

c2e8gylq7#

节点18.x.x的测试是否成功。
以下步骤指导如何安装http-server包

  • 在联机PC上:npm install -g http-server完成安装后,复制http服务器文件夹。(通常位于:C:\用户[用户名]\应用程序数据\漫游\npm\节点模块)
  • 在脱机PC上:
  • 粘贴http服务器文件夹。例如D:\http服务器
  • npm安装-g D:\http服务器
r7xajy2e

r7xajy2e8#

联机计算机:

npm install -g offline-npm

复制的npm模块到离线的计算机,这就是它!

相关问题