create-react-app 除了NODE_ENV如何区分环境变量

发布时间 2023-06-25 09:37:22作者: 桃之夭夭丶
比如webpack打包的时候,可能要打包到测试环境或者生产环境,但是这时候NODE_ENV的值都是production ,这个时候如何区分呢。
答案是:
cross-env和webpack.DefinePlugin


1. 定义环境变量到编译环境:

  • 测试环境: cross-env NODE_STAGE=test npm run build
  • 预上线: cross-env NODE_STAGE=stage npm run build
  • 线上环境: cross-env NODE_STAGE=prod npm run build

2. 通过环境变量为运行环境定义全局常量:

plugins: [
  new webpack.DefinePlugin({
    "process.env.NODE_ENV": process.env.NODE_ENV,
    "process.env.NODE_STAGE": process.env.NODE_STAGE,
  })
]

2. 使用全局常量

const nodeStage = process.env.NODE_STAGE;
console.log(nodeStage)