如何在没有Internet连接的情况下在本地安装NodeJS项目?

Kat*_*a S 13 windows node.js npm

我有一个项目,我将不得不部署到客户端Windows系统,在那里它将无法连接到互联网.我目前在D:\ NODE中有一个文件夹,其中包含node.exe和npm.cmd以及node_modules文件夹.为了能够从命令行运行节点,我已将D:\ NODE添加到PATH变量.

我可以在项目的node_modules中本地安装大多数模块.然而,有一个 - 节点 - 窗口 - 需要全局安装才能工作.

根据下面的建议,我去了node-windows(全局安装)并将其打包(npm pack),这创建了一个tarball.然后我用我的项目复制了该文件,并尝试将其安装在全局测试机器上,如下所示:npm install -g node-windows-0.1.5.tgz

我可以看到它已安装在全局目录中.但是,当我尝试运行使用此模块的命令时,它会抱怨它无法找到它:Error: Cannot find module 'node-windows'

当我列出模块(npm list -g)时,它显然在列表中...

你怎么看?谢谢你

alu*_*sen 23

您可以在没有Internet连接的系统上安装软件包,方法是使用npm中的内置功能打包它们.这样,节点模块将正确安装.

  1. 创建一个package.json.
  2. 在你的package.json中,列出你需要的所有模块bundledDependencies(npm上的文档).
  3. 运行npm install以在打包之前安装节点文件.
  4. npm pack.创建一个tarball .
  5. 将tarball复制到没有Internet连接的计算机.
  6. 安装模块npm install <filename>.

更新

关于您的评论,看起来您找不到全局安装的节点模块.

尝试使用npm link命令(npm链接上的文档):

  1. cd yourAppFolder
  2. npm link node-windows


ali*_*zri 7

1 - 在具有 Internet 访问权限的系统中,使用以下命令安装模块:

npm install [module name]
Run Code Online (Sandbox Code Playgroud)

2 - 转到 %userprofile%\AppData\Roaming\npm\node_modules[module name]\(例如 C:\Users\janson\AppData\Roaming\npm\node_modules\grunt-cli)
3 - 运行npm pack
4 - 这应该导致a [模块名称]-xyztgz 文件
5 -npm i -g [module name]-x.y.z.tgz在离线系统中运行

  • 您可以运行 `npm pack &lt;module_name&gt;` 一步将包保存为 tarball。那简单一点 (2认同)