Vue CLI 命令行打包配置自定義參數(shù)方式
前言
難點(diǎn)來自于需求,好??那我們就說說我是因?yàn)槭裁葱枨竽兀?/p>
需求:我要通過【頁面ID】訪問接口數(shù)據(jù),進(jìn)行Vue模塊化構(gòu)建包含【頁面數(shù)據(jù)】的靜態(tài)頁面。我有很多的頁面ID!!!(不要糾結(jié)為啥有這樣的需求,干就完了)
思路:
- 1.通過命令行打包時(shí)傳入【頁面ID】
- 2.Vue構(gòu)建過程中訪問接口生成靜態(tài)頁面
- 3.發(fā)布部署
重點(diǎn) vue.config.js
vue.config.js 是一個(gè)可選的配置文件,如果項(xiàng)目的 (和 package.json 同級的) 根目錄中存在這個(gè)文件,那么它會(huì)被 @vue/cli-service 自動(dòng)加載。如果沒有需要你自己創(chuàng)建一個(gè)
重點(diǎn)
- Vue CLI 構(gòu)建命令配置參數(shù)就是修改構(gòu)建環(huán)境變量和模式;
- 可以在 vue.config.js 文件中計(jì)算環(huán)境變量;
- 只有以 VUE_APP_ 開頭的變量會(huì)被靜態(tài)嵌入到客戶端側(cè)的包中。你可以在應(yīng)用的代碼中這樣訪問它們:
console.log(process.env.VUE_APP_PAGE_ID)
除了 VUE_APP_* 變量之外,在你的應(yīng)用代碼中始終可用的還有兩個(gè)特殊的變量:
- NODE_ENV - 會(huì)是 “development”、“production” 或 “test” 中的一個(gè)。具體的值取決于應(yīng)用運(yùn)行的模式。
- BASE_URL - 會(huì)和 vue.config.js 中的 publicPath 選項(xiàng)相符,即你的應(yīng)用會(huì)部署到的基礎(chǔ)路徑。
在 vue.config.js 文件中計(jì)算環(huán)境變量
配置

代碼
vue.config.js 文件全部代碼
- npm指令需要讀取 process.env.npm_config_argv
- vue-cli-service指令需要讀取 process.argv
// 解析指令參數(shù)
// npm指令需要讀取 process.env.npm_config_argv
const argv = JSON.parse(process.env.npm_config_argv);
// vue-cli-service指令需要讀取 process.argv,我用的是npm
const argv1 = process.argv;
console.log("process.env.npm_config_argv值", argv)
console.log("process.argv值", argv1)
const config = {};
// 獲取自定義參數(shù)
let idx = 2;
const cooked = argv.cooked;
const length = argv.cooked.length;
while ((idx += 2) <= length) {
config[cooked[idx - 2]] = cooked[idx - 1];
}
process.env.VUE_APP_PAGE_ID = config['--pageId']
console.log("頁面ID:" + process.env.VUE_APP_PAGE_ID)
// VUE 平臺配置內(nèi)容
module.exports = {
productionSourceMap: false
}
命令
liukeruideMacBook-Pro:vuedemo liukerui$ npm run serve --pageId=P312
日志

使用
代碼

日志輸出

擴(kuò)展
按照我上面描述的配置成功是沒問題的。但是作為低調(diào)的程序員我們要嘗試一下其它輸入命令的方式看看輸出的日志:
ps:本人自己都嘗試過,感覺做程序員好難
第一種
npm run serve -- --pageId=P312

第二種
npm run serve pageId=P312

好了就這樣吧,自己遇見什么情況自己運(yùn)行一下。
注意:不同的命令輸入方式解析參數(shù)值的方式不同
彩蛋
紅框內(nèi)可以配置參數(shù)

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue組件傳值方式(props屬性,父到子,子到父,兄弟傳值)
這篇文章主要介紹了Vue組件傳值方式(props屬性,父到子,子到父,兄弟傳值),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Vue組件化開發(fā)之通用型彈出框的實(shí)現(xiàn)
這篇文章主要介紹了Vue組件化開發(fā)之通用型彈出框的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
vue中當(dāng)圖片地址無效的時(shí)候,顯示默認(rèn)圖片的方法
今天小編就為大家分享一篇vue中當(dāng)圖片地址無效的時(shí)候,顯示默認(rèn)圖片的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
使用Vue3+Vant組件實(shí)現(xiàn)App搜索歷史記錄功能(示例代碼)
最近接了個(gè)項(xiàng)目需要開發(fā)一個(gè)app項(xiàng)目,由于是第一次接觸這種app開發(fā),經(jīng)過一番思考,決定使用Vue3+Vant前端組件的模式進(jìn)行開發(fā),下面把問題分析及實(shí)現(xiàn)代碼分享給大家,需要的朋友參考下吧2021-06-06
詳解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Vue.js的指令是以v-開頭的,它們作用于HTML元素,指令提供了一些特殊的特性。這篇文章主要介紹了Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on 的相關(guān)知識,需要的朋友可以參考下2018-10-10
Vue執(zhí)行方法,方法獲取data值,設(shè)置data值,方法傳值操作
這篇文章主要介紹了Vue執(zhí)行方法,方法獲取data值,設(shè)置data值,方法傳值操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08

