繁体   English   中英

如何在本地运行我的 React 应用程序的生产版本?

[英]How to run a production build of my react app locally?

我的 package.json 有以下脚本:

"build": "sh -ac '. .env.${REACT_APP_ENV}; react-scripts build'"

当我运行yarn build ,出现以下错误:

sh: .env.: No such file or directory

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

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

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

$ npm install -g serve

$ serve -s build

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

export REACT_APP_HEADER_COLOR="#f66"

源这个新的 shellscript 而不是旧的 env 文件:

"sh -ac '. .env.${REACT_APP_ENV}.sh; react-scripts build'"

现在变量将成功传递到构建过程,供它使用。

为什么?

这就是 shell 的工作原理。 加载到当前 shell 中的环境变量(带有source.或赋值)仅传递给子级,如果它被导出:

$ FOO=foo
$ sh -c 'echo $FOO'

$ export FOO=foo
$ sh -c 'echo $FOO'
foo

请注意,这些单行快捷方式也会自动/隐式导出:

$ BAR=bar sh -c 'echo $BAR'
bar
$ env BAR=baz sh -c 'echo $BAR'
baz

(我怀疑这种隐藏的行为是混淆的常见来源。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM