Преглед изворни кода

feat: 增设umi环境变量配置用于非node环境获取

lanjianrong пре 4 година
родитељ
комит
abee1da176
4 измењених фајлова са 13 додато и 18 уклоњено
  1. 5 2
      config/config.js
  2. 3 3
      package.json
  3. 5 8
      src/utils/env.ts
  4. 0 5
      src/utils/is.ts

+ 5 - 2
config/config.js

@@ -9,10 +9,13 @@ import defaultSettings from './defaultSettings'
 import proxy from './proxy'
 import routes from './routes'
 import windicss from 'windicss-webpack-plugin/dist/index'
-const { NODE_ENV, REACT_APP_ENV } = process.env
+const { REACT_APP_ENV } = process.env
 export default defineConfig({
   hash: true,
   antd: {},
+  define: {
+    REACT_APP_ENV: REACT_APP_ENV || false
+  },
   layout: {
     // https://umijs.org/zh-CN/plugins/plugin-layout
     locale: true,
@@ -94,7 +97,7 @@ export default defineConfig({
     config.plugin('windicss').use(windicss)
     config.plugin('antd-dayjs-webpack-plugin').use(AntdDayjsWebpackPlugin)
 
-    if (NODE_ENV === 'production') {
+    if (REACT_APP_ENV === 'prod') {
       config.merge({
         optimization: {
           minimize: true,

+ 3 - 3
package.json

@@ -5,9 +5,9 @@
   "description": "An out-of-box UI solution for enterprise applications",
   "scripts": {
     "analyze": "cross-env ANALYZE=1 umi build",
-    "build": "cross-env REACT_APP_ENV=prod umi build",
-    "deploy:qa": "cross-env REACT_APP_ENV=qa auto-deploy build -t qa",
-    "deploy:prod": "auto-deploy build -t prod",
+    "build": "umi build",
+    "deploy:qa": "cross-env REACT_APP_ENV=dev auto-deploy build -t qa",
+    "deploy:prod": "cross-env REACT_APP_ENV=prod auto-deploy build -t prod",
     "deploy-gh-pages": "npm run site && npm run gh-pages",
     "dev": "npm run start:dev",
     "fetch:blocks": "pro fetch-blocks && npm run prettier",

+ 5 - 8
src/utils/env.ts

@@ -1,5 +1,4 @@
 import pkg from '../../package.json'
-import { isDevOrQa } from './is'
 
 // Generate cache key according to version
 export function getStorageShortName() {
@@ -8,19 +7,19 @@ export function getStorageShortName() {
 /**
  * @description: Development model
  */
-export const devMode = 'development'
+export const devMode = 'dev'
 
 /**
  * @description: Production mode
  */
-export const prodMode = 'production'
+export const prodMode = 'prod'
 /**
  * @description: Get environment variables
  * @returns:
  * @example:
  */
 export function getEnv(): string {
-  return process.env
+  return REACT_APP_ENV
 }
 
 /**
@@ -29,8 +28,7 @@ export function getEnv(): string {
  * @example:
  */
 export function isDevMode(): boolean {
-  // isDevOrQa
-  return isDevOrQa()
+  return REACT_APP_ENV === devMode
 }
 
 /**
@@ -39,6 +37,5 @@ export function isDevMode(): boolean {
  * @example:
  */
 export function isProdMode(): boolean {
-  const { NODE_ENV } = process.env
-  return NODE_ENV === prodMode
+  return REACT_APP_ENV === prodMode
 }

+ 0 - 5
src/utils/is.ts

@@ -55,8 +55,3 @@ export function isEmpty<T = unknown>(val: T): val is T {
 export function isMobile() {
   return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)
 }
-
-export function isDevOrQa() {
-  const { host } = window.location
-  return /^(cld2qa)|(localhost)/.test(host)
-}