问题
实际开发中,开发环境和生产环境中一些变量是不同的,比如接口地址等等,打包之前需要手动切换。
编译时
新建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。