【发布时间】:2019-09-09 20:17:22
【问题描述】:
我有一个非常基本的需求:根据环境为我的 API 存储不同的端点。假设一个简单的文件是这样的:
API_URL=http://localhost:8080
对于我的产品环境,它应该变成:
API_URL=http://myprodServer
我也想要一个集成测试和一个 uat 端点!
查看我的 package.json 我看到了:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
所以我的想法是:
- 在“build”和“start”附近放置一个命令行参数,以便指定本地和生产环境文件
- 有一种方法可以访问我的应用中的上述配置,比如 config.API_URL
现在,我来自 Spring Boot,在 Spring Boot 中,每个环境都有一个文件。
虽然 dotenv 可能是我的解决方案,但我在他们的网站上看到了两件奇怪的事情:
- 请不要提交您的 .env 文件 --> 那么,我的同事应该如何构建我的应用程序?我通常至少推送本地和测试环境,同时将 uat 和生产文件直接保存在服务器下
- 你应该只有一个 .env 文件 --> 好吧,这个文件毁了我:如果我只有一个文件,我应该如何处理多个环境???
我在这里缺少什么?你能帮我解决我的问题吗?我是 npm 新手,所以我有点困惑......
【问题讨论】:
-
环境变量可以通过
process.env在nodejs 中访问,就像process.env.API_URLdotenv是您可以定义环境变量的替代品(方便)。您可以拥有一个config.js文件,您可以在其中读取所有环境变量并导出配置