7

设置:

  • 具有 Internet 连接的 VM,npm install将在其中执行以安装所有应用程序依赖项。结果将是一个文件夹,其中包含应用程序及其依赖项node_modules

  • 应用程序模块之间是 fi: mongoose,它在安装时用于node-gyp编译原生 BSON 扩展。

  • app 文件夹在没有 Internet 连接的情况下被复制到另一个 VM,并且它功能齐全,但是编译的扩展程序不起作用,但它的.js后备程序起作用。

问题:

如何在没有 Internet 连接的情况下重新安装/重新编译/重新生成新 VM 上的所有应用程序模块?

4

1 回答 1

19

这正是npm rebuild命令所做的。将应用程序复制到新 VM 后,只需npm rebuild在应用程序目录中运行,所有二进制插件都将重新编译以匹配当前 CPU 架构和节点版本。npm install如果复制之前的初始完全成功,npm rebuild则第二个 VM 上将不需要下载任何内容。只需确保第二个 VM 具有相当接近的 node 版本和适当的较低级别的编译器、库等(例如,debian 上的 build-essential 和 python)。

于 2014-12-02T19:38:16.737 回答