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

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

我可以将大部分模块本地安装在我的项目的node_modules里面。 但是有一个节点窗口 – 需要全局安装才能工作。

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

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

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

你怎么看? 谢谢你

Solutions Collecting From Web of "如何在没有Internet连接的情况下在本地安装NodeJS项目?"

您可以在没有互联网连接的情况下在系统上安装软件包,使用npm中的内置功能打包。 这样, 节点模块将被正确安装。

  1. 创建一个package.json
  2. 在你的package.json中 ,列出你在bundledDependencies下需要的所有模块。
  3. run npm install以在打包之前安装节点文件。
  4. npm pack创建一个tarball。
  5. 将tarball复制到没有互联网连接的机器上。
  6. 使用npm install <filename>安装模块。

更新

关于你的意见,看起来你的全局安装的节点模块没有找到。

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

  1. cd yourAppFolder
  2. npm link node-windows

1 – 在带有Internet访问的系统中,使用此命令安装模块:

 npm install [module name] 

2 – 进入%userprofile%\ AppData \ Roaming \ npm \ node_modules [模块名称] \(例如C:\ Users \ janson \ AppData \ Roaming \ npm \ node_modules \ grunt-cli)
3 – 运行npm pack
4 – 这应该导致一个[模块名称] -xyztgz文件
5 – 在离线系统中运行npm i -g [module name]-xyztgz