import { loadEnv } from "vite"; import uni from "@dcloudio/vite-plugin-uni"; export default (command, mode) => { //uniapp中,这个mode,不用命令行的添加--mode编译的话,是undefined的 if (!mode) { //这里是为了确保mode有值,假如开发人员直接在开发工具选择编译到浏览器,也能兼容到 if (process.env.NODE_ENV == "production") { mode = "production"; } else { mode = "development"; } } //这个就是第三步配置的uni-app的script,一一对应判断 switch (process.env.UNI_SCRIPT) { case "dev": mode = "development"; break; case "localhost": mode = "localhost"; break; default: mode = "production"; break; } const env = loadEnv(mode, __dirname, "MP_"); console.log('mode: ', mode); console.log(process.env.UNI_SCRIPT) console.log(`📦 正在编译 ${mode} 环境`); return { envPrefix: "MP_", plugins: [uni()], define: { //根据vite的官方文档,可以把define定义的变量名,在项目编译时,识别项目文件中的这个变量名直接替换成env配置,我们把这个变量放到config.js文件中,对env配置进行集中管理 __VITE_ENV__: JSON.stringify(env), }, }; };