我正在尝试从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);'"
}
由于