2

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

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

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

谁能想到一种解决方法,以便我可以强制节点使用本地环境中的全局依赖项,以及服务器上的本地依赖项?

谢谢!


更新:

我现在已经想出了一种方法,它并不优雅,但它有效:

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

1 回答 1

2

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

于 2012-02-07T14:10:59.597 回答