设置:
具有 Internet 连接的 VM,其中将执行
npm install
以安装所有应用依赖项。结果将是一个包含应用程序及其依赖项的文件夹,位于node_modules
中。应用模块之间是 fi:
<mongoose
,它在安装时使用node-gyp
编译原生 BSON 扩展。app 文件夹被复制到另一个没有 Internet 连接的 VM 并且它具有完整的功能,但是编译的扩展不起作用但它的
.js
后备可以。
问题:
如何在没有互联网连接的情况下在新虚拟机上重新安装/重新编译/重新生成所有应用程序模块?
最佳答案
这正是npm rebuild命令确实如此。将应用复制到新 VM 后,只需在应用目录中运行 npm rebuild
,任何二进制附加组件都将被重新编译以匹配当前的 CPU 架构和 Node 版本。如果复制之前的初始 npm install
完全成功,则第二个 VM 上的 npm rebuild
将不需要下载任何内容。只需确保第二个 VM 具有合理接近的 Node 版本和适当的较低级别编译器、库等(例如,debian 上的 build-essential 和 python)。
关于node.js - Node/npm : How to reinstall/recompile copied app packages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27257424/