Vite 中的汇总:从主捆绑包导入的区块导致重复下载

Rollup in Vite: Chunks Importing from Main Bundle Causing Duplicate Downloads

提问人:Haim 提问时间:11/13/2023 更新时间:11/13/2023 访问量:27

问:

我在使用 Rollup 的 Vite 构建过程中遇到了一个问题,其中生成的块试图从主文件导入模块。当主捆绑包在 script 标签中加载查询字符串时,这会导致重复下载,稍后,块会尝试导入没有查询字符串的同一模块。app.bundle.jsindex.html

问题概述:

  1. 该文件最初加载到带有查询字符串(例如 )的 script 标记中。app.bundle.jsindex.htmlapp.bundle.js?123
  2. 在生成过程中生成的块会尝试在没有查询字符串的情况下导入模块。app.bundle.js
  3. 这会导致同一模块的重复下载,从而导致许多问题,例如重新呈现应用程序和无法正确加载动态页面。

汇总配置:以下是我的简化版本:vite.config.js

 rollupOptions: {
      output: {
        entryFileNames: 'js/app.bundle.js',
        chunkFileNames: 'js/chunk.[name].[hash].js',
        assetFileNames: 'assets/[ext]/[name].[hash][extname]',
    
      },

* it is neccessary to not use app.[hash].js because there is another process that tries to address the app.bundle.js and is not aware of the actual dynamic file name.

addes dynamic import of using react-router lazy method lazy: () => import("./pathtocomponent").
ran vite build.
the result app.bundle.js file which includes a component "Layout" that is used by the dynamic route component.
the created chunk file of the dynamic route tries to import the Layout component from the main bundle.
//chunk.index.3d260d06
import { La as Layout } from "./app.bundle.js";
 
捆绑 vite 汇总

评论


答: 暂无答案