Reactjs 如何在本地运行我的react应用程序的生产构建?
My package.json具有以下脚本: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运行生
"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
是空的