package.json“scripts”中的“NODE_ENV =开发npm install”应该安装devDependencies吗?

时间:2016-02-08 18:18:22

标签: node.js npm npm-install

我正在尝试从npm脚本调用npm install ,但即使我将NODE_ENV设置为development,也无法安装devDependencies的是:

{
  "name": "test",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "deploy": "NODE_ENV=development npm i"
  },
  "devDependencies": {
    ...
  }
}

这样,运行npm run deploy时只安装依赖项,而不是devDependencies。 这是设计吗?

要提供更多信息,计算机上的NODE_ENV设置为production,并且应该保持这种状态。我想为一个脚本行设置环境变量,这通常适用于其他脚本。该行正确设置NODE_ENV并且安装程序运行,但它没有考虑环境变量 - 从脚本调用npm install似乎总是像设置--production标志一样运行。

因此,从shell运行行NODE_ENV=development npm i会安装devDependencies和依赖项(它会覆盖在机器上设置的NODE_ENV变量,仅适用于这一个命令),但在package.json中运行相同的行脚本块忽略NODE_ENV覆盖。

  • --production标志无效,因为我还想安装devDependencies。
  • --only[prod|dev]也没有按我的意愿行事,因为如果我正确阅读,它只会安装dev 仅prod依赖项。

package.json中的以下行正确打印development作为环境变量,即使机器上设置了production

"scripts": {
  "envTest": "NODE_ENV=development node -e 'console.log(process.env.NODE_ENV);'"
}

由于

0 个答案:

没有答案