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

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]:基于文件內容生成的哈希值(用于避免緩存問題)
  • [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] 占位符可有效解決瀏覽器緩存問題,避免線上資源更新后用戶無法獲取最新內容。

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

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

相關文章

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

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

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

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

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

    Vue自動生成組件示例總結

    在Vue中,我們可以使用unplugin-generate-component-name插件自動基于目錄名稱生成組件名稱,這個插件使得在大型代碼庫中找到和管理組件更加容易和直觀,這篇文章主要介紹了Vue自動生成組件示例總結,需要的朋友可以參考下
    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使用詳解

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

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

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

    vue2的todolist入門小項目的詳細解析

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

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

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

    Vue中request.js封裝及調用示例詳解

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

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

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

最新評論