欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間: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),實現(xiàn) JS、CSS、圖片等資源的分類存放。

一、實現(xiàn)原理

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

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

二、具體配置步驟

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

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

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

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

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

(3)占位符說明

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

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

三、打包效果驗證

執(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

四、注意事項

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

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

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

相關(guān)文章

  • 在Vue中使用xlsx組件實現(xiàn)Excel導(dǎo)出功能的步驟詳解

    在Vue中使用xlsx組件實現(xiàn)Excel導(dǎo)出功能的步驟詳解

    在現(xiàn)代Web應(yīng)用程序中,數(shù)據(jù)導(dǎo)出到Excel格式是一項常見的需求,Vue.js是一種流行的JavaScript框架,允許我們構(gòu)建動態(tài)的前端應(yīng)用程序,本文將介紹如何使用Vue.js和xlsx組件輕松實現(xiàn)Excel數(shù)據(jù)導(dǎo)出功能,需要的朋友可以參考下
    2023-10-10
  • vue實現(xiàn)輪播圖的多種方式

    vue實現(xiàn)輪播圖的多種方式

    這篇文章給大家介紹了vue實現(xiàn)輪播圖的多種方式,文中給出了四種實現(xiàn)方式,并通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,感興趣的朋友可以參考下
    2024-02-02
  • Vue自動生成組件示例總結(jié)

    Vue自動生成組件示例總結(jié)

    在Vue中,我們可以使用unplugin-generate-component-name插件自動基于目錄名稱生成組件名稱,這個插件使得在大型代碼庫中找到和管理組件更加容易和直觀,這篇文章主要介紹了Vue自動生成組件示例總結(jié),需要的朋友可以參考下
    2023-12-12
  • vue實現(xiàn)一個單獨的組件注釋

    vue實現(xiàn)一個單獨的組件注釋

    這篇文章主要介紹了vue實現(xiàn)一個單獨的組件注釋,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue+element多選級聯(lián)選擇器自定義props使用詳解

    vue+element多選級聯(lián)選擇器自定義props使用詳解

    這篇文章主要給大家介紹了關(guān)于vue+element多選級聯(lián)選擇器自定義props使用的相關(guān)資料,級聯(lián)選擇器展示的結(jié)果都是以數(shù)組的形式展示,也就是v-model綁定的結(jié)果,需要的朋友可以參考下
    2023-07-07
  • 詳解vue2.0組件通信各種情況總結(jié)與實例分析

    詳解vue2.0組件通信各種情況總結(jié)與實例分析

    本篇文章主要介紹了詳解vue2.0組件通信各種情況總結(jié)與實例分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • vue2的todolist入門小項目的詳細(xì)解析

    vue2的todolist入門小項目的詳細(xì)解析

    本篇文章主要介紹了vue2的todolist入門小項目的詳細(xì)解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • vue項目中使用websocket的實現(xiàn)

    vue項目中使用websocket的實現(xiàn)

    本文主要介紹了vue項目中使用websocket的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Vue中request.js封裝及調(diào)用示例詳解

    Vue中request.js封裝及調(diào)用示例詳解

    這篇文章主要為大家介紹了Vue中request.js封裝及調(diào)用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Vue?elementui如何實現(xiàn)表格selection的默認(rèn)勾選

    Vue?elementui如何實現(xiàn)表格selection的默認(rèn)勾選

    這篇文章主要介紹了Vue?elementui如何實現(xiàn)表格selection的默認(rèn)勾選問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論