React 中设置环境变量(开发环境、测试环境和生产环境)

React 中设置环境变量(开发环境、测试环境和生产环境)

环境 React ,Umi框架

 1. 安装插件:cross-env

npm i cross-env -S

 

 

2. 修改 package.json 文件

  "scripts": {
    "dev": "cross-env REACT_APP_ENV=dev umi dev",
    "dev:prod": "cross-env REACT_APP_ENV=prod umi dev",
    "build": "cross-env REACT_APP_ENV=dev umi build",
    "build:prod": "cross-env REACT_APP_ENV=prod umi build",
    "postinstall": "umi setup",
    "setup": "umi setup",
    "start": "npm run dev",
    "test": "cross-env TS_NODE_TRANSPILE_ONLY=yes jest --passWithNoTests"
  },

 

 

3. 创建配置文件

在跟目录下创建 host.ts文件

export default {
  dev: { Url_Mate: "https://wwww.development.com/" },
  prod: { Url_Mate: "https://www.production.com" },
};

 

 

4. 定义变量,打开.umirc.ts 文件

import { defineConfig } from "umi";
import host from "./host";

const { REACT_APP_ENV } = process.env;
export default defineConfig({
  base: "/dict",
  npmClient: "yarn",
  tailwindcss: {},
  mfsu: false,
  codeSplitting: {
    jsStrategy: "granularChunks",
    jsStrategyOptions: {},
  },
  plugins: ["@umijs/plugins/dist/tailwindcss"],
  copy: [
    {
      from: "Dockerfile",
      to: "dist",
    },
  ],
  define: {
    // "process.env": {
    //   NODE_ENV: process.env.REACT_APP_ENV,
    // },
  Url_Mate: host[REACT_APP_ENV].Url_Mate,
},
});

 

 

使用:在 api 接口文件中,直接使用Url_Mate变量

const apiPath = Url_Mate;

 

 

 

注:如在 api 接口文件中获取 环境变量

const eenv = process.env;

 

 

只能获取到如下内容

 

 但是在.umirc.ts 文件 中可获取到  package.json 中配置的环境变量

const { REACT_APP_ENV } = process.env;

 

如需要 api 接口文件中获取 配置的环境变量,需在.umirc.ts 文件 中配置

  define: {
     "process.env": {
       NODE_ENV: process.env.REACT_APP_ENV,
     },
    Url_Mate: host[REACT_APP_ENV],
  },

 

 

 

end

 

posted @ 2023-11-03 11:06  无心々菜  阅读(1272)  评论(0编辑  收藏  举报