Reactjs 如何在本地运行我的react应用程序的生产构建?

Reactjs 如何在本地运行我的react应用程序的生产构建?,reactjs,yarnpkg,production,Reactjs,Yarnpkg,Production,My package.json具有以下脚本: "build": "sh -ac '. .env.${REACT_APP_ENV}; react-scripts build'" 运行warn build时,出现以下错误: sh:.env.:没有这样的文件或目录 .env文件按预期位于我的项目目录的顶层。有什么想法吗 您还可以使用NODE_ENV变量,它为您提供环境模式 我不知道您是否正在使用create react app,但如果您正在使用(一旦您构建了应用程序),您可以使用service运行生

My package.json具有以下脚本:

"build": "sh -ac '. .env.${REACT_APP_ENV}; react-scripts build'"
运行
warn build
时,出现以下错误:

sh:.env.:没有这样的文件或目录


.env文件按预期位于我的项目目录的顶层。有什么想法吗

您还可以使用
NODE_ENV
变量,它为您提供环境模式

我不知道您是否正在使用
create react app
,但如果您正在使用(一旦您构建了应用程序),您可以使用
service
运行生产版本:

$npm安装-g服务


$serve-s build

.env.foo
复制或重命名为
.env.foo.sh
,并在每行开头添加
导出
,如下所示:

export REACT_APP_HEADER_COLOR=“#f66”
源代码:此新shellscript而不是旧的环境文件:

"sh -ac '. .env.${REACT_APP_ENV}.sh; react-scripts build'"
现在,变量将成功地传递给构建过程,供其使用

为什么? 这就是shell的工作原理。加载到当前shell中的环境变量(使用
源代码
或赋值)仅在导出时传递给子级:

$FOO=FOO
$sh-c'回声$FOO'
$export FOO=FOO
$sh-c'回声$FOO'
福
请注意,这些单行快捷方式也会自动/隐式导出:

$BAR=BAR sh-c“echo$BAR”
酒吧
$env BAR=baz sh-c“回声$BAR”
巴兹

(我怀疑这种隐藏的行为经常会引起混淆。)

但是
.env.
文件不是(见尾随的点),因为
REACT\u APP\u env
是空的