0

我正在尝试npm install 从 npm script调用,但是即使我将 devDependencies 设置NODE_ENVdevelopment这样,也不会安装:

{
  "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设置标志一样运行。

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

  • --production标志没有帮助,因为我还想安装 devDependencies。
  • 也没有做我想做的事,因为如果我没看错,--only[prod|dev]它只会安装 dev或prod 依赖项。

即使在机器上设置了以下行,也会package.json正确打印为环境变量:developmentproduction

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

谢谢

4

0 回答 0