在不同环境中使用已编译的节点依赖项

时间:2011-09-06 18:20:41

标签: node.js centos npm

我有一个节点项目,我在本地运行并部署到CentOS服务器。我有一些依赖项,其中一个依赖于编译的依赖项。

使用npm,我可以使用npm install在本地编译依赖项,它会很好用。但是,这不是为部署服务器编译的,因此如果上载它将会中断。

我可以在CentOS框上编译依赖项,它可以在服务器上运行,但它会在本地环境中中断。

任何人都可以想到一个解决方法,以便我可以强制节点使用本地环境中的全局依赖项,以及服务器上的本地依赖项吗?

谢谢!


更新

我现在想办法做到这一点,它并不优雅,但它有效:

  1. 在我的本地环境中运行npm install
  2. 将node_modules文件夹重命名为node_modules_local
  3. 在服务器上运行npm install
  4. 将变量添加到所有require()路径
  5. 将本地环境变量设置为“development”
  6. 检查我们是否处于开发模式,如果是,请将require path变量设置为./node_modules_local

1 个答案:

答案 0 :(得分:2)

检入依赖项的源代码(已编译的依赖项和仅js-only-dependencies)。部署应用程序时,在服务器上运行“npm rebuild”。这似乎是官方推荐的方式。有关详细信息,请参阅http://www.mikealrogers.com/posts/nodemodules-in-git.html