我有一个项目,我将不得不部署到客户端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
)时,它显然在列表中。
你怎么看? 谢谢你
您可以在没有互联网连接的情况下在系统上安装软件包,使用npm中的内置功能打包。 这样, 节点模块将被正确安装。
bundledDependencies
下需要的所有模块。 run npm install
以在打包之前安装节点文件。 npm pack
创建一个tarball。 npm install <filename>
安装模块。 更新
关于你的意见,看起来你的全局安装的节点模块没有找到。
尝试使用npm link
命令( 文档npm链接 ):
cd yourAppFolder
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