溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

vue項(xiàng)目webpack中Npm傳遞參數(shù)配置不同域名接口

發(fā)布時(shí)間:2020-09-27 17:22:06 來(lái)源:腳本之家 閱讀:185 作者:盼少 欄目:web開(kāi)發(fā)

項(xiàng)目開(kāi)發(fā)中,前端在配置后端api域名時(shí)很困擾,常常出現(xiàn):

本地開(kāi)發(fā)環(huán)境: api-dev.demo.com

測(cè)試環(huán)境: api-test.demo.com

線上生產(chǎn)環(huán)境: api.demo.com,

這次是在Vue.js項(xiàng)目中打包,教大家個(gè)方法:

使用 npm run build -- xxx   ,根據(jù)傳遞參數(shù)xxx來(lái)判定不同的環(huán)境,給出不同的域名配置。

1.項(xiàng)目中/config/dev.env.js修改:

新增:HOST: '"dev"'

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
 
module.exports = merge(prodEnv, {
 NODE_ENV: '"development"',
 HOST: '"dev"'
})

2.項(xiàng)目中/config/prod.env.js修改:

獲取傳遞進(jìn)來(lái)的參數(shù):

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

3.項(xiàng)目中ajax封裝的地方修改:

/**
** 設(shè)置API接口域名
**/
 
let apiUrl = '';
// 根據(jù) process.env.HOST 的值判斷當(dāng)前是什么環(huán)境
// 命令:npm run build -- test ,process.env.HOST就設(shè)置為:'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個(gè)橫杠,后面跟參數(shù),這樣 process.env.HOST 就獲取到參數(shù) 'test' 了,

apiUrl = 'http://api-test.demo.com'

若線上prod發(fā)布打包,npm run build -- prod

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI