github传送门javascript
/* * 环境列表,第一个环境为默认环境 * envName: 指明如今使用的环境 * dirName: 打包的路径,只在build的时候有用 * apiHostname: 这个环境下面的api 请求的域名 * assetHostname: 静态资源存放的域名,未指定(undefined)则为相对路径 * */ const ENV_LIST = [ { envName: 'test', dirName: 'test', apiHostname: 'http://test_apiHostname', assetHostname: 'http://localhost:3004' }, { envName: 'pro', dirName: 'pro', apiHostname: 'http://product_apiHostname', assetHostname:'http://product_assetHostname' }, { envName: 'qa', dirName: 'qa', apiHostname: 'http://product_apiHostname', assetHostname:'http://product_assetHostname' } ]
const HOST_NAME = process.env.HOST_NAME export {HOST_NAME}
npm run dev [envName]css
# 例子: # 在qa的环境中调试,process.env.HOST_NAME === 'http://qa_hostname' npm run dev qa
npm run build [envName] //打指定环境的包html
npm run build-all // 所有从新打包vue
dist |-test |-qa |-pro
/config/host-conf.js
host-conf.jsjava
/config/index.js
// 经过webpack传入客户端中 plugins: [ new webpack.DefinePlugin({ 'process.env.HOST_NAME': '\"' + process.env.HOST_NAME + '\"' }) ]
build/build.js
和build/dev-server.js
设置环境变量// 设置域名的环境变量 process.env.HOST_ENV = process.argv[2]
build/build-all.js
host-conf.jsnode
package.json
的script, 增长Build-all"build-all": "node build/build-all.js"webpack