首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在运行创建-反应-应用程序构建脚本时设置构建.env变量?

如何在运行创建-反应-应用程序构建脚本时设置构建.env变量?
EN

Stack Overflow用户
提问于 2017-02-25 16:16:20
回答 6查看 193.8K关注 0票数 124

我在创建-react中使用了以下环境变量:

代码语言:javascript
复制
console.log(process.env.REACT_APP_API_URL) // http://localhost:5555

当我通过读取一个npm start文件运行.env时,它可以工作:

代码语言:javascript
复制
REACT_APP_API_URL=http://localhost:5555

如何在执行http://localhost:1234时设置类似npm run build的不同值

这是我的package.json文件:

代码语言:javascript
复制
{
  "name": "webapp",
  "version": "0.1.0",
  "private": true,
  "devDependencies": {
    "react-scripts": "0.9.0"
  },
  "dependencies": {
    "react": "^15.4.2",
    "react-dom": "^15.4.2"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-02-25 18:12:34

您可以这样使用process.env.NODE_ENV

代码语言:javascript
复制
const apiUrl = process.env.NODE_ENV === 'production' ? process.env.REACT_APP_PROD_API_URL : process.env.REACT_APP_DEV_API_URL;

您需要设置REACT_APP_PROD_API_URLREACT_APP_DEV_API_URL

或者,如果生产URL总是相同的,您可以简化它:

代码语言:javascript
复制
const apiUrl = process.env.NODE_ENV === 'production' ? 'https://example.com' : process.env.REACT_APP_DEV_API_URL;

Create为您在构建时将NODE_ENV设置为“production”,因此您不需要担心何时将其设置为生产。

注意:您必须重新启动服务器(例如再次运行npm start )以检测环境变量更改。

票数 59
EN

Stack Overflow用户

发布于 2017-09-22 14:22:49

我想你现在已经开始工作了,但是对于其他发现这个问题的人,您可以在.env文件中的“create”项目的根目录中设置默认的环境变量。

要分离使用npm startnpm run build时使用的变量,您可以再创建两个env文件-- .env.development.env.production

npm startREACT_APP_NODE_ENV设置为development,因此它将自动使用.env.development文件,npm run buildREACT_APP_NODE_ENV设置为production,因此它将自动使用.env.production。其中设置的值将覆盖.env中的值。

如果您正在与其他人一起工作,并且只具有特定于计算机的值,则可以通过将这些值分别添加到一个新文件-- .env.development.env.production.local --来覆盖.env.development.local.env.production.local中的值。

编辑:我应该指出,您设置的环境变量必须以"REACT_APP_“开头,例如。"REACT_APP_MY_ENV_VALUE“。

编辑2:如果您需要的不仅仅是开发和生产,请使用这句话指定的环境-cmd

票数 219
EN

Stack Overflow用户

发布于 2019-05-24 18:37:04

如果您希望有单独的dotenv文件来构建和/或部署到不同的环境(stage,prod),那么您可以这样使用环境-cmd

代码语言:javascript
复制
npm install --save-dev env-cmd
./node_modules/.bin/env-cmd -f ./stage.env npm build

然后只需相应地更新您的package.json

代码语言:javascript
复制
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "build:stage": "env-cmd -f ./.stage.env npm run-script build"
  },

然后,要构建,只需运行以下shell命令:

代码语言:javascript
复制
npm run build:stage
票数 49
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42458434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档