【发布时间】:2020-04-20 02:52:30
【问题描述】:
我想在 Heroku 上部署一个 React 应用 + 节点服务器,
我看到如果你使用 create-react-app,你可以使用 process.env.NODE_ENV 来知道你是在开发中还是在生产中,但是我总是得到“开发”,它不起作用,所以我试过这个:
.env
REACT_APP_ENV=dev
在 React 应用程序中,我尝试通过控制台记录变量,但它仍然未定义
console.log("env ", process.env.REACT_APP_ENV); <-- output: undefined
但是在服务端,控制台日志是对的,
if (process.env.REACT_APP_ENV === "prod") {
app.use(express.static("build"));
app.get("*", (req, res) => res.sendFile(path.resolve("build", "index.html")));
} else if (process.env.REACT_APP_ENV === "dev") {
console.log("ENV ", process.env.REACT_APP_ENV); <-- output: "dev"
}
当我在生产时,在“prod”和在开发中的“dev”有一个变量的最简单方法是什么?
谢谢
【问题讨论】:
-
请检查.env文件的路径?
-
.env 是根目录,我也有 .env.development 和 .env.production 因为我尝试了这个解决方案
-
你能分享 index,js 的文件你在哪里声明 env 文件
-
React 应用程序在客户端运行,即与服务器完全不同的上下文,因此您的环境变量在那里不可用。如果您使用的是捆绑器,例如 Webpack 或 Browserify,您可以使用它来将 env vars 注入到捆绑包中。否则,您必须创建客户端应用程序可以从中检索它的端点。
标签: javascript node.js reactjs environment-variables