vue项目webpack中Npm传递参数配置不同域名接口
项目开发中,前端在配置后端api域名时很困扰,常常出现:
本地开发环境:api-dev.demo.com
测试环境:api-test.demo.com
线上生产环境:api.demo.com,
这次是在Vue.js项目中打包,教大家个方法:
使用npmrunbuild--xxx ,根据传递参数xxx来判定不同的环境,给出不同的域名配置。
1.项目中/config/dev.env.js修改:
新增:HOST:'"dev"'
'usestrict' constmerge=require('webpack-merge') constprodEnv=require('./prod.env') module.exports=merge(prodEnv,{ NODE_ENV:'"development"', HOST:'"dev"' })
2.项目中/config/prod.env.js修改:
获取传递进来的参数:
'usestrict' letHOST=process.argv.splice(2)[0]||'prod'; console.log(HOST); module.exports={ NODE_ENV:'"production"', HOST:'"'+HOST+'"' }
3.项目中ajax封装的地方修改:
/** **设置API接口域名 **/ letapiUrl=''; //根据process.env.HOST的值判断当前是什么环境 //命令:npmrunbuild--test,process.env.HOST就设置为:'test' letHOST=process.env.HOST; HOST=HOST==='prod'?'':'-'+HOST; apiUrl='http://api'+HOST+'.demo.com'; axios.defaults.baseURL=apiUrl;
4.最后敲命令:
npmrunbuild--test
注意–是2个横杠,后面跟参数,这样process.env.HOST就获取到参数'test'了,
apiUrl='http://api-test.demo.com'
若线上prod发布打包,npmrunbuild--prod
apiUrl='http://api.demo.com'
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。