vue中Npm run build 根據環境傳遞參數方法來打包不同域名


項目開發中,前端在配置后端api域名時很困擾,常常出現:

本地開發環境: api-dev.demo.com

測試環境: api-test.demo.com

線上生產環境: api.demo.com,

這次是在Vue.js項目中打包,教大家個方法:

使用 npm run build -- xxx   ,根據傳遞參數xxx來判定不同的環境,給出不同的域名配置。

1.項目中/config/dev.env.js修改:

新增:HOST: '"dev"'

 
1
2
3
4
5
6
7
'use strict'
const merge = require( 'webpack-merge' )
const prodEnv = require( './prod.env' )
module.exports = merge(prodEnv, {
  NODE_ENV: '"development"' ,
  HOST: '"dev"'
})

2.項目中/config/prod.env.js修改:

獲取傳遞進來的參數:

 
1
2
3
4
5
6
7
'use strict'
let HOST = process.argv.splice(2)[0] || 'prod' ;
console.log(HOST);
module.exports = {
  NODE_ENV: '"production"' ,
  HOST: '"' +HOST+ '"'
}

3.項目中ajax封裝的地方修改:

 
1
2
3
4
5
6
7
8
9
10
/**
** 設置API接口域名
**/
let apiUrl = '' ;
// 根據 process.env.HOST 的值判斷當前是什么環境
// 命令:npm run build -- test ,process.env.HOST就設置為:'test'
let HOST = process.env.HOST;
HOST = HOST === 'prod' ? '' : '-' + HOST;
apiUrl = 'http://api' +HOST+ '.demo.com' ;
axios.defaults.baseURL = apiUrl;

4.最后敲命令:

npm run build -- test

注意–是2個橫杠, 后面跟參數,這樣  process.env.HOST 就獲取到參數  'test'  了,

若線上prod發布打包,npm run build -- prod

 
1
apiUrl = 'http://api.demo.com'

 

文章內容轉自: https://www.jb51.net/article/137355.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM