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