- 修改 package.json ,在 scripts 中增加打包命令(如下),使用不同的打包命令可用设置不同的环境参数 ENV_CONFIG=dev 或者 ENV_CONFIG=prod,在接下来的打包的过程,可用通过 process.env.ENV_CONFIG 来获取不同的环境参数,区分是开发环境还是测试环境
"build:dev": "cross-env ENV_CONFIG=dev umi build",
"build:prod": "cross-env ENV_CONFIG=prod umi build",
- 修改根目录下 config 文件夹中的配置文件 config.js , 根据环境的不同,设置不同的环境参数
// 分环境打包配置,默认打包环境为测试环境
let CONFIG = { domain: 'https://develop.com'};
//根据 process.env.ENV_CONFIG,设置不同的环境变量
if (process.env.ENV_CONFIG === 'dev') {
CONFIG = {
// publicPath 指定 webpack 的 publicPath,指向静态资源文件所在的路径
publicPath: '/devPublic/',
domain: 'https://develop.com',
};
}
if (process.env.ENV_CONFIG === 'prod') {
CONFIG = {
publicPath: '/prodPublic/',
domain: 'https://product.com',
};
}
export default {
// add for transfer to umi
plugins,
targets: {
ie: 11,
},
// define 中可用来定义变量,然后传给代码,相当于定义一个全局变量,在代码中可用直接引用
define: {
APP_TYPE: process.env.APP_TYPE || '',
API_DOMIAN: CONFIG.domain,
},
}
- 在代码中引用 API_DOMIAN
// 获取变量 API_DOMIAN (这里会提示 API_DOMIAN 未定义但是实际是能拿到变量的值)
const domain = API_DOMIAN;
export async function queryUser() {
return request(`${domain}/v1/user/userlist`);
}
- 打包
// 开发环境打包
npm run build:dev
// 正式环境打包
npm run build:prod
网友评论