首页 文章

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

提问于
浏览
12

我有一个项目,我将不得不部署到客户端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 )时,它显然在列表中...

你怎么看?谢谢你

2 回答

  • 1

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

    • 创建 package.json .

    • package.json 中,列出 bundledDependenciesdocs on npm)下所需的所有模块 .

    • 运行 npm install 以在打包前安装节点文件 .

    • 使用 npm pack 创建tarball .

    • 将tarball复制到没有Internet连接的计算机 .

    • 使用 npm install <filename> 安装模块 .

    Update

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

    尝试使用 npm link 命令(docs on npm link):

    • cd yourAppFolder

    • npm link node-windows

  • 21

    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 - 这应该导致[模块名称] -x.y.z.tgz文件
    5 - 在离线系统中运行 npm i -g [module name]-x.y.z.tgz

相关问题