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

Vite 打包目錄結構自定義配置小結

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

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

一、實現(xiàn)原理

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

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

二、具體配置步驟

1. 基礎配置文件

在項目根目錄的 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ù)細分類型)
        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]';
          }
          // 其他資源默認輸出到 asset 目錄
          return 'asset/[name].[hash].[ext]';
        }
      }
    }
  }
});

2. 配置說明

(1)JS 資源分離

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

(2)非 JS 資源細分

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

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

(3)占位符說明

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

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

三、打包效果驗證

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

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

四、注意事項

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

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

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

相關文章

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

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

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

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

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

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

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

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

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

    詳解Vue-cli webpack移動端自動化構建rem問題

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

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

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

    vue使用codemirror的兩種用法

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

    基于vue編寫一個月餅連連看游戲

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

    vue-model實現(xiàn)簡易計算器

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

    vue如何截取字符串

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

最新評論

怀化市| 阿城市| 庆云县| 集安市| 紫金县| 乌鲁木齐县| 洮南市| 古丈县| 图木舒克市| 阿城市| 湾仔区| 涞水县| 故城县| 石泉县| 林西县| 耿马| 多伦县| 聂拉木县| 文成县| 龙江县| 丁青县| 山东省| 亳州市| 华宁县| 山东| 榆中县| 前郭尔| 娱乐| 泰和县| 永丰县| 偃师市| 河西区| 文化| 昌图县| 铁岭市| 那曲县| 垦利县| 英吉沙县| 云阳县| 南投市| 喜德县|