最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue腳手架模式與環(huán)境變量示例詳解

 更新時(shí)間:2025年11月29日 14:07:25   作者:前端小巷子  
在Vue開發(fā)中環(huán)境變量管理是構(gòu)建多環(huán)境配置的核心技術(shù),這篇文章主要介紹了Vue腳手架模式與環(huán)境變量的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在真實(shí)項(xiàng)目里,「如果每次切換環(huán)境都手動(dòng)改代碼,不僅低效,還極易把測試地址帶到線上。Vue CLI 把「模式 + 環(huán)境變量」做成了一套約定大于配置的體系,只要理解規(guī)則,就能讓同一份源碼在任意環(huán)境自動(dòng)作出正確的行為。

一、模式(mode)

Vue CLI 把「運(yùn)行命令」抽象成三種默認(rèn)模式:

  • development:對應(yīng) vue-cli-service serve
  • production:對應(yīng) vue-cli-service build
  • test:對應(yīng) vue-cli-service test:unit

模式本身不攜帶任何變量,它只是約定文件名前綴。

當(dāng)你執(zhí)行:

npm run serve        # 實(shí)際等價(jià)于 vue-cli-service serve --mode development
npm run build:staging # 自定義命令,等價(jià)于 vue-cli-service build --mode staging

CLI 會按以下順序?qū)ふ椅募?/p>

  • .env.[mode].local
  • .env.[mode]
  • .env.local(永遠(yuǎn)被 git ignore)
  • .env

同名變量后者覆蓋前者,因此你可以把公共值寫在 .env,把敏感值寫在 .env.local,把環(huán)境特有值寫在 .env.staging,一條命令即可切換。

二、環(huán)境變量

  • 只有 VUE_APP_ 開頭的變量才會被打包

任何機(jī)器級環(huán)境變量(PATH、HOME …)都會被忽略,避免污染前端運(yùn)行時(shí)。

想讓變量進(jìn) bundle,必須加前綴:

# .env.staging
VUE_APP_API_BASE=https://staging.api.example.com

在代碼里直接用:

axios.defaults.baseURL = process.env.VUE_APP_API_BASE

構(gòu)建時(shí) CLI 會把 process.env.VUE_APP_API_BASE 替換為字符串字面量,零運(yùn)行時(shí)開銷。

  • 運(yùn)行時(shí)不可動(dòng)態(tài)修改

變量在 npm run build 那一刻就被寫死,前端無法通過 process.env.XXX = 'new' 去改。

需要運(yùn)行時(shí)可變配置?把變量寫成 JSON 文件或接口返回,再在前端異步加載即可。

三、一個(gè)文件,一條命令,三種環(huán)境

假設(shè)我們要同時(shí)支持 dev / staging / prod

根目錄
├─ .env                 # 公共配置
├─ .env.development     # 本地開發(fā)
├─ .env.staging         # 預(yù)發(fā)
├─ .env.production      # 線上
└─ package.json

文件內(nèi)容示例:

# .env
VUE_APP_TITLE=MyApp

# .env.development
VUE_APP_API_BASE=http://localhost:3000

# .env.staging
VUE_APP_API_BASE=https://staging.api.example.com

# .env.production
VUE_APP_API_BASE=https://api.example.com

自定義腳本:

"scripts": {
  "serve": "vue-cli-service serve",
  "build:staging": "vue-cli-service build --mode staging",
  "build": "vue-cli-service build"
}

執(zhí)行:

npm run build:staging

CLI 自動(dòng)讀取 .env.staging 與 .env 合并,輸出包里只有 https://staging.api.example.com。

四、CI/CD 中的最佳實(shí)踐

  • 不把敏感密鑰寫進(jìn)倉庫

    把 .env*.local 加入 .gitignore,在 CI 里用環(huán)境變量注入:

   echo $STAGING_KEY >> .env.staging.local
  • 單一 Dockerfile,多階段構(gòu)建

    通過 ARG MODE 動(dòng)態(tài)決定 --mode,同一份鏡像可在測試、預(yù)發(fā)、生產(chǎn)之間漂移。

  • 可視化差異

    在構(gòu)建日志里打印 console.log('Build mode:', process.env.NODE_ENV, process.env.VUE_APP_API_BASE),一眼確認(rèn)變量是否生效。

五、常見問題

  • 變量名可以改前綴嗎?

    可以,在 vue.config.js 里設(shè)置 envPrefix: 'APP_' 即可。

  • 為什么本地 .env 改了值不生效?

    vue-cli-service serve 會緩存舊進(jìn)程,重啟 dev-server 或加 --no-cache 即可。

  • 如何讀取非 VUE_APP 變量?

    在 vue.config.js 用 chainWebpack 手動(dòng)注入:

  config.plugin('define').tap(args => {
    args[0]['process.env.CUSTOM'] = JSON.stringify(process.env.CUSTOM)
    return args
  })

總結(jié) 

到此這篇關(guān)于Vue腳手架模式與環(huán)境變量的文章就介紹到這了,更多相關(guān)Vue腳手架模式與環(huán)境變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue插件之滑動(dòng)驗(yàn)證碼用法詳解

    Vue插件之滑動(dòng)驗(yàn)證碼用法詳解

    這篇文章主要介紹了Vue插件之滑動(dòng)驗(yàn)證碼用法,結(jié)合實(shí)例形式詳細(xì)分析了Vue滑動(dòng)驗(yàn)證碼插件相關(guān)使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • vue2.0 + ele的循環(huán)表單及驗(yàn)證字段方法

    vue2.0 + ele的循環(huán)表單及驗(yàn)證字段方法

    今天小編就為大家分享一篇vue2.0 + ele的循環(huán)表單及驗(yàn)證字段方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 一文詳細(xì)聊聊vue3的defineProps、defineEmits和defineExpose

    一文詳細(xì)聊聊vue3的defineProps、defineEmits和defineExpose

    vue3官方文檔defineProps和defineEmits都是只能在scriptsetup中使用的編譯器宏,下面這篇文章主要給大家介紹了關(guān)于vue3的defineProps、defineEmits和defineExpose的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • vuejs移動(dòng)端實(shí)現(xiàn)div拖拽移動(dòng)

    vuejs移動(dòng)端實(shí)現(xiàn)div拖拽移動(dòng)

    這篇文章主要為大家詳細(xì)介紹了vuejs移動(dòng)端實(shí)現(xiàn)div拖拽移動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Vue3使用element-plus實(shí)現(xiàn)彈窗效果

    Vue3使用element-plus實(shí)現(xiàn)彈窗效果

    本文主要介紹了Vue3使用element-plus實(shí)現(xiàn)彈窗效果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Vue中v-html圖片過大導(dǎo)致溢出的問題及解決

    Vue中v-html圖片過大導(dǎo)致溢出的問題及解決

    這篇文章主要介紹了Vue中v-html圖片過大導(dǎo)致溢出的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 一文帶你搞懂Vue3中Pinia的使用

    一文帶你搞懂Vue3中Pinia的使用

    用官網(wǎng)的一句話來說:Pinia?是?Vue的專屬狀態(tài)管理庫,Pinia就是為vue3而生。本文將通過一些示例詳細(xì)介紹一些Pinia的使用,希望對大家有所幫助
    2022-11-11
  • 學(xué)習(xí)vue.js表單控件綁定操作

    學(xué)習(xí)vue.js表單控件綁定操作

    這篇文章主要和大家一起學(xué)習(xí)vue.js表單控件綁定操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • vue3引入uview-plus3.0移動(dòng)組件庫的流程

    vue3引入uview-plus3.0移動(dòng)組件庫的流程

    這篇文章主要介紹了vue3引入uview-plus3.0移動(dòng)組件庫的流程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • vue單頁面在微信下只能分享落地頁的解決方案

    vue單頁面在微信下只能分享落地頁的解決方案

    這篇文章主要介紹了vue單頁面在微信下只能分享落地頁的解決方案,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-04-04

最新評論

渝北区| 故城县| 石渠县| 大港区| 文水县| 武隆县| 迁西县| 内黄县| 台湾省| 洛宁县| 贞丰县| 镇巴县| 抚顺县| 柘荣县| 翁源县| 夏邑县| 桃源县| 文安县| 奇台县| 吉隆县| 嘉禾县| 天门市| 鱼台县| 平顶山市| 调兵山市| 商都县| 克拉玛依市| 太谷县| 呼图壁县| 盖州市| 佛学| 九龙县| 高淳县| 亚东县| 平山县| 小金县| 金湖县| 镇雄县| 凉山| 玉溪市| 四子王旗|