0

想象一下我有一个环境变量

export NODE_ENV=production

当我做

echo $NODE_ENV //--> shows production which is correct

问题:

在我的 package.json 里面

scripts: {
...
"build": "export REACT_APP_NODE_ENV=${NODE_ENV:-development}; 
          npm run build-css && react-scripts build",
...
}

现在,当我这样做时,npm run buildREACT_APP_NODE_ENV 正在开始开发......但它应该已经生产,因为 NODE_ENV 存在。

如果我做

scripts: {
...
"build": "export REACT_APP_NODE_ENV=production; 
   npm run build-css && react-scripts build",
...
}

它按预期正常工作,即所有脚本访问 REACT_APP_NODE_ENV 的预期值为生产。

目标

我希望避免在我的 package.json 中进行硬编码

如何设置REACT_APP_NODE_ENV的值${NODE_ENV}

"build": "export REACT_APP_NODE_ENV=${NODE_ENV}; 
  npm run build-css && react-scripts build",
4

1 回答 1

1

您可能希望确保这是跨平台的,这将在以后为您省去一些麻烦。

这个问题已经在 npm 包cross-var中解决了。

然后,假设您已经导出了 NODE_ENV,您可以这样使用它:

"scripts": {
    "build": "REACT_APP_NODE_ENV=${NODE_ENV}"
}
于 2017-09-14T13:16:12.577 回答