Nodejs / npm:如何重新安装/重新编译复制的应用程序包

build立:

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

  • 应用程序模块之间是fi: mongoose ,在安装时使用node-gyp编译本机BSON扩展。

  • 应用程序文件夹被复制到另一个没有互联网连接的虚拟机,它是完全正常的,但是然后编译的扩展不工作,但它的.js后备呢。

题:

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

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