node.js 仅用于生产的 npm 依赖项

node.js npm dependencies for production only

也许我在这里完全偏离了轨道,我正在追逐错误的想法:

我有一个 node.js 项目,其中包含一个 npm 模块(我们称之为 my_npm_module),我也在努力。

模块的目录像这样链接到我的项目中:

/home
  |
  |__ myproject
  |   |
  |   |__ node_modules
  |         |__ some_other_module
  |         |__ my_npm_module (should only get installed/updated in production mode)
  |         |__ my_npm_module (symlinked only in development mode from /home/modules/mymodule)
  |
  |__modules
      |__ my_npm_module (symlinked to /home/myproject/node_modules/mymodule)

现在,当我在开发模式下调用 npm install/update 时,我不希望我的模块获得 installed/updated,因为我想使用符号链接版本。

但我希望我的模块在生产模式下获得 installed/updated。并且 处于生产(NODE_ENV=生产)模式。

因为 package.json "dependencies" installs/updates 对于任何一种模式,即开发 生产和 "devDependencies" installs/updates 对于仅限开发模式,我有点卡在这里。

我正在寻找的是 "productionDependencies" 之类的东西,或者至少是涵盖这种情况的解决方案。

抱歉,没有办法。

您可以做的是在部署时添加一个额外的行。

$ npm install my_module 
$ NODE_ENV=production npm install

当您完成模块开发时(假设您不想再 link 它,因为它已准备好用于生产),您只需删除该额外行并将其添加到您的依赖项中。

另一个想法是在部署脚本中修改 package.json 生产文件。这将确保只为生产安装该模块。