问题
实际开发中,开发环境和生产环境中一些变量是不同的,比如接口地址等等,打包之前需要手动切换。
编译时
新建env.js
let baseUrl = '';
if(process.env.NODE_ENV == 'production'){
baseUrl = 'https://xxxxxxxxx';
} else if (process.env.NODE_ENV == 'development') {
baseUrl = '/api'
}
export {
baseUrl
}
process.env.NODE_ENV
是通过webpack 内置的 DefinePlugin 为所有的依赖定义的变量
webpack.dev.conf.js
new webpack.DefinePlugin({
'process.env.NODE_ENV': 'development'
}),
webpack.prod.conf.js
new webpack.DefinePlugin({
'process.env.NODE_ENV': 'production'
}),
这样在项目任意文件中都能调用process.env.NODE_ENV变量,本人测试过,process并不是挂载在window变量上,猜测可能是挂载到了node的process变量。
在运行脚本编译项目的时候,会根据变量值的不同,设置不同的baseUrl。