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

Vite 打包目錄結(jié)構(gòu)自定義配置小結(jié)

 更新時(shí)間:2025年08月29日 10:36:19   作者:沒煩惱301  
在Vite工程開發(fā)中,默認(rèn)打包后的dist目錄資源常集中在asset目錄下,不利于資源管理,本文基于Rollup配置原理,本文就來介紹一下通過Vite配置自定義打包目錄結(jié)構(gòu),感興趣的可以了解一下

在 Vite 工程開發(fā)中,默認(rèn)打包后的 dist 目錄資源常集中在 asset 目錄下,不利于資源管理。本文基于 Rollup 配置原理,詳細(xì)介紹如何通過 Vite 配置自定義打包目錄結(jié)構(gòu),實(shí)現(xiàn) JS、CSS、圖片等資源的分類存放。

一、實(shí)現(xiàn)原理

Vite 底層依賴 Rollup 進(jìn)行打包,因此需通過 Vite 的 build.rollupOptions 配置項(xiàng)傳遞 Rollup 相關(guān)參數(shù),核心通過 Rollup 的 output 配置控制資源輸出路徑:

  • entryFileNames:控制入口 JS 文件的輸出路徑
  • chunkFileNames:控制分包/懶加載生成的 JS chunk 文件路徑
  • assetFileNames:控制非 JS 資源(CSS、圖片、SVG 等)的輸出路徑

二、具體配置步驟

1. 基礎(chǔ)配置文件

在項(xiàng)目根目錄的 vite.config.js(或 vite.config.ts)中,通過 build.rollupOptions.output 配置資源輸出規(guī)則:

// vite.config.js
import { defineConfig } from 'vite';

export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        // 1. 入口 JS 文件輸出配置
        entryFileNames: 'js/[name].[hash].js', 
        // 2. 分包/懶加載 JS 文件輸出配置
        chunkFileNames: 'js/[name].[hash].js', 
        // 3. 非 JS 資源輸出配置(通過函數(shù)細(xì)分類型)
        assetFileNames: (assetInfo) => {
          // 定義圖片后綴列表
          const imgExts = ['png', 'jpg', 'jpeg', 'gif', 'svg', 'webp'];
          // 獲取資源文件名
          const fileName = assetInfo.name || '';
          
          // 若為 CSS 文件,輸出到 css 目錄
          if (fileName.endsWith('.css')) {
            return 'css/[name].[hash].[ext]';
          }
          // 若為圖片文件,輸出到 images 目錄
          if (imgExts.some(ext => fileName.endsWith(`.${ext}`))) {
            return 'images/[name].[hash].[ext]';
          }
          // 其他資源默認(rèn)輸出到 asset 目錄
          return 'asset/[name].[hash].[ext]';
        }
      }
    }
  }
});

2. 配置說明

(1)JS 資源分離

  • entryFileNames:將項(xiàng)目入口 JS 文件(如 main.js)輸出到 dist/js 目錄,命名格式為 文件名.哈希值.js(哈希值用于緩存控制)。
  • chunkFileNames:將路由懶加載、代碼分割生成的 JS chunk 文件統(tǒng)一輸出到 dist/js 目錄,與入口 JS 集中管理。

(2)非 JS 資源細(xì)分

通過 assetFileNames 函數(shù)對(duì)資源類型進(jìn)行判斷:

  • CSS 文件:匹配 .css 后綴,輸出到 dist/css 目錄。
  • 圖片資源:匹配 png、jpg、svg等圖片后綴,輸出到 dist/images目錄。
  • 其他資源:未匹配的資源(如字體、視頻等)默認(rèn)輸出到 dist/asset 目錄。

(3)占位符說明

配置中使用的 Rollup 占位符含義:

  • [name]:資源原始文件名(不含后綴)
  • [hash]:基于文件內(nèi)容生成的哈希值(用于避免緩存問題)
  • [ext]:資源原始后綴名(含 .,如 .css、.png)

三、打包效果驗(yàn)證

執(zhí)行 npm run build 打包后,dist 目錄結(jié)構(gòu)如下:

dist/
├─ js/                 # 所有 JS 資源
│  ├─ main.xxxx.js     # 入口 JS
│  └─ chunk.xxxx.js    # 分包 JS
├─ css/                # 所有 CSS 資源
│  └─ style.xxxx.css
├─ images/             # 所有圖片資源
│  ├─ logo.xxxx.png
│  └─ icon.xxxx.svg
└─ asset/              # 其他資源
   └─ font.xxxx.ttf

四、注意事項(xiàng)

  1. 配置兼容性:確保 Vite 版本 ≥ 2.0,Rollup 配置語法隨版本可能略有差異,建議參考對(duì)應(yīng)版本官方文檔。
  2. 資源類型擴(kuò)展:如需添加更多資源類型(如字體 woff2),可在 imgExts 或判斷邏輯中擴(kuò)展。
  3. 哈希值必要性:保留 [hash] 占位符可有效解決瀏覽器緩存問題,避免線上資源更新后用戶無法獲取最新內(nèi)容。

通過上述配置,可實(shí)現(xiàn) Vite 打包目錄的精細(xì)化管理,提升項(xiàng)目資源組織的清晰度和可維護(hù)性。

到此這篇關(guān)于Vite 打包目錄結(jié)構(gòu)自定義配置小結(jié)的文章就介紹到這了,更多相關(guān)Vite 打包目錄結(jié)構(gòu)配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中拆分組件的實(shí)戰(zhàn)案例

    vue中拆分組件的實(shí)戰(zhàn)案例

    最近在學(xué)vue,試著寫個(gè)單頁應(yīng)用,在寫組件,拆分組件時(shí)遇到一些困惑,下面這篇文章主要給大家介紹了關(guān)于vue中拆分組件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 一文帶你了解Vue?和?React的區(qū)別

    一文帶你了解Vue?和?React的區(qū)別

    這篇文章主要介紹了Vue和React的區(qū)別,畢竟是兩個(gè)框架,不像兩個(gè)?API,要說細(xì)節(jié)上的區(qū)別就太多太多了,本文就簡單的帶大家說說Vue?和?React?的區(qū)別,需要的朋友可以參考下
    2023-05-05
  • Vue結(jié)合ElementUI實(shí)現(xiàn)數(shù)據(jù)請(qǐng)求和頁面跳轉(zhuǎn)功能(最新推薦)

    Vue結(jié)合ElementUI實(shí)現(xiàn)數(shù)據(jù)請(qǐng)求和頁面跳轉(zhuǎn)功能(最新推薦)

    我們?cè)赑roflie.vue實(shí)例中,有beforeRouteEnter、beforeRouteLeave兩個(gè)函數(shù)分別是進(jìn)入路由之前和離開路由之后,我們可以在這兩個(gè)函數(shù)之內(nèi)進(jìn)行數(shù)據(jù)的請(qǐng)求,下面給大家分享Vue結(jié)合ElementUI實(shí)現(xiàn)數(shù)據(jù)請(qǐng)求和頁面跳轉(zhuǎn)功能,感興趣的朋友一起看看吧
    2024-05-05
  • Vue中組件之間傳值的六種方式(完整版)

    Vue中組件之間傳值的六種方式(完整版)

    組件是 vue.js 最強(qiáng)大的功能之一,而組件實(shí)例的作用域是相互獨(dú)立的,這就意味著不同組件之間的數(shù)據(jù)無法相互引用,針對(duì)不同的使用場景,如何選擇行之有效的通信方式?這是我們所要探討的主題,本文總結(jié)了 vue 組件間通信的幾種方式,需要的朋友可以參考下
    2025-03-03
  • 詳解Vue-cli webpack移動(dòng)端自動(dòng)化構(gòu)建rem問題

    詳解Vue-cli webpack移動(dòng)端自動(dòng)化構(gòu)建rem問題

    這篇文章主要介紹了詳解Vue-cli webpack移動(dòng)端自動(dòng)化構(gòu)建rem問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • vue 實(shí)現(xiàn)通過vuex 存儲(chǔ)值 在不同界面使用

    vue 實(shí)現(xiàn)通過vuex 存儲(chǔ)值 在不同界面使用

    今天小編就為大家分享一篇vue 實(shí)現(xiàn)通過vuex 存儲(chǔ)值 在不同界面使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue使用codemirror的兩種用法

    vue使用codemirror的兩種用法

    這篇文章主要介紹了在vue里使用codemirror的兩種用法,每種方法通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 基于vue編寫一個(gè)月餅連連看游戲

    基于vue編寫一個(gè)月餅連連看游戲

    中秋節(jié)快要到啦,我們一起用Vue創(chuàng)建一個(gè)簡單的連連看游戲,連連看大家一定都玩過吧,通過消除相同的圖案來清理棋盤,小編將一步步引導(dǎo)大家完成整個(gè)游戲的制作過程,讓我們開始吧,一起為中秋節(jié)增添一些互動(dòng)和娛樂
    2023-09-09
  • vue-model實(shí)現(xiàn)簡易計(jì)算器

    vue-model實(shí)現(xiàn)簡易計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了vue-model實(shí)現(xiàn)簡易計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • vue如何截取字符串

    vue如何截取字符串

    這篇文章主要介紹了vue如何截取字符串,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評(píng)論

青海省| 泽普县| 湖州市| 隆德县| 灵武市| 肥西县| 灵山县| 冀州市| 海宁市| 兴安县| 台前县| 张家港市| 贺兰县| 盘山县| 剑河县| 赫章县| 措勤县| 冷水江市| 黔江区| 远安县| 抚州市| 嫩江县| 略阳县| 札达县| 木里| 望谟县| 灵石县| 乐业县| 花莲县| 武汉市| 饶河县| 禄丰县| 河津市| 湟源县| 楚雄市| 乃东县| 治县。| 樟树市| 武冈市| 仙游县| 乌兰浩特市|