当前位置: 代码迷 >> 综合 >> umi 如何区分不同环境
  详细解决方案

umi 如何区分不同环境

热度:76   发布时间:2024-01-30 20:07:08.0

开发过程中,我们经常要配置不同的环境变量来区分环境。最近使用uim.js。它如何配置环境变量呢?

根据文档:多环境多份配置 和 定义代码中可访问变量define 做了如下配置:

// .umirc.local.js
export default {define: {ENV: 'local',}
}// .umirc.test.js
export default {define: {ENV: 'test',}
}// .umirc.pro.js
export default {define: {ENV: 'pro',}
}

然后在package.json中配置相关的运行命令,如:

"dev": "cross-env UMI_ENV=local umi dev",
"pro": "cross-env UMI_ENV=pro umi dev",
"test": "cross-env UMI_ENV=test umi dev",

在代码中访问process.env只有NODE_ENV这个内置的环境变量,访问ENV,无论运行那条命令,一直都是local。十分困惑,官网也没做别的解释。后面在其GitHub issue 上找到了一种写法,尝试可以。

export default defineConfig({define: {"process.env.ENV": process.env.ENV},
});

将umirc.xxx.js中的写法换成上面的写法,可以在代码中通过process.env.ENV访问到,而且值正确。

 

 

  相关解决方案