Vue CLI 命令行打包配置自定義參數(shù)方式
前言
難點(diǎn)來(lái)自于需求,好??那我們就說(shuō)說(shuō)我是因?yàn)槭裁葱枨竽兀?/p>
需求:我要通過(guò)【頁(yè)面ID】訪問(wèn)接口數(shù)據(jù),進(jìn)行Vue模塊化構(gòu)建包含【頁(yè)面數(shù)據(jù)】的靜態(tài)頁(yè)面。我有很多的頁(yè)面ID!!!(不要糾結(jié)為啥有這樣的需求,干就完了)
思路:
- 1.通過(guò)命令行打包時(shí)傳入【頁(yè)面ID】
- 2.Vue構(gòu)建過(guò)程中訪問(wèn)接口生成靜態(tài)頁(yè)面
- 3.發(fā)布部署
重點(diǎn) vue.config.js
vue.config.js 是一個(gè)可選的配置文件,如果項(xiàng)目的 (和 package.json 同級(jí)的) 根目錄中存在這個(gè)文件,那么它會(huì)被 @vue/cli-service 自動(dòng)加載。如果沒(méi)有需要你自己創(chuàng)建一個(gè)
重點(diǎn)
- Vue CLI 構(gòu)建命令配置參數(shù)就是修改構(gòu)建環(huán)境變量和模式;
- 可以在 vue.config.js 文件中計(jì)算環(huán)境變量;
- 只有以 VUE_APP_ 開(kāi)頭的變量會(huì)被靜態(tài)嵌入到客戶端側(cè)的包中。你可以在應(yīng)用的代碼中這樣訪問(wèn)它們:
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("頁(yè)面ID:" + process.env.VUE_APP_PAGE_ID)
// VUE 平臺(tái)配置內(nèi)容
module.exports = {
productionSourceMap: false
}
命令
liukeruideMacBook-Pro:vuedemo liukerui$ npm run serve --pageId=P312
日志

使用
代碼

日志輸出

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

第二種
npm run serve pageId=P312

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

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

