我的客户有一个非常特殊的要求。我们使用 npm 安装 karma 和 phantomjs 已经有一段时间了。一切正常,直到我们必须将所有内容从云迁移到内部基础设施。现在事情变得复杂了。内部基础设施无法访问互联网,因此我们无法再使用 npm 来解决依赖关系。我们尝试将 node_modules 文件夹 dev 机器移动到内部基础架构机器。它不起作用,因为开发机器是 OSX 和 Windows,服务器是 Centos,phantomjs 是特定于操作系统的,但 npm 能够进行版本控制。我们有什么选择来解决依赖关系?我刚刚了解到 node_modules 名称无法更改。我正在考虑检查操作系统特定的 node_modules 但这不起作用,因为 npm 只查找 node_modules 文件夹。

当我尝试在 Centos 中使用 OSX 中的 node_modules 时,我遇到了与该线程 PhantomJS Crash - Exit Code 126 相同的错误。

最佳答案

在第一个操作系统(即 OSX)上安装所有依赖项,假设您有包含所有依赖项的 package.json。



将创建的 npm_modules 重命名为 npm_modules_mac

对不同的操作系统(即 Windows)重复上述步骤,将 node_modules 重命名为 node_modules_windows 之类的名称。

在目标操作系统上,将上面创建的文件夹移动到您的应用程序文件夹,创建符号链接(symbolic link)(node_modules),它将指向适当的文件夹(npm_modules -> npm_modules_mac 在 OSX 中)

关于node.js - 如何跨平台移动 npm node_modules 文件夹?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19284339/

10-16 13:37