![](/img/trans.png)
[英]My React app looks great when run locally. When run in production, some content shifts to the left
[英]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.