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

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

使用npm,我可以使用npm install在本地编译依赖关系,而且它会工作的很好。 但是这并不是为部署服务器编译的,所以如果它被上传的话就会中断。

我可以编译一个CentOS盒子的依赖关系,它可以在服务器上工作,但会在本地环境中破坏。

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

谢谢!


更新:

我现在想出了一个办法来做到这一点,这不是优雅的,但它的工作原理:

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

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