使用rollup时如何设置最小块大小?

Gaj*_*jus 7 rollupjs vite

我将 Rollup 与Vitevite-plugin-ssr一起使用。

它使用标准配置生成的生产版本包含大量小文件,例如

dist/client/assets/chunk-adbd3755.js                                                            0.69 KiB / gzip: 0.43 KiB
dist/client/assets/chunk-adbd3755.js.map                                                        0.10 KiB
dist/client/assets/chunk-d703547b.js                                                            2.35 KiB / gzip: 1.15 KiB
dist/client/assets/chunk-d703547b.js.map                                                        7.79 KiB
dist/client/assets/chunk-860778e7.js                                                            0.95 KiB / gzip: 0.51 KiB
dist/client/assets/chunk-860778e7.js.map                                                        3.26 KiB
dist/client/assets/chunk-90693398.js                                                            2.37 KiB / gzip: 0.94 KiB
dist/client/assets/chunk-90693398.js.map                                                        10.18 KiB
dist/client/assets/chunk-a3b7c495.js                                                            2.21 KiB / gzip: 1.04 KiB
dist/client/assets/chunk-a3b7c495.js.map                                                        5.33 KiB
dist/client/assets/chunk-d321b675.js                                                            0.67 KiB / gzip: 0.46 KiB
dist/client/assets/chunk-d321b675.js.map                                                        4.34 KiB
dist/client/assets/chunk-c5fff223.js                                                            0.36 KiB / gzip: 0.23 KiB
dist/client/assets/chunk-c5fff223.js.map                                                        1.17 KiB
dist/client/assets/chunk-93f6d1e0.js                                                            2.42 KiB / gzip: 0.93 KiB
dist/client/assets/chunk-93f6d1e0.js.map                                                        6.81 KiB
dist/client/assets/chunk-84638231.js                                                            0.90 KiB / gzip: 0.52 KiB
dist/client/assets/chunk-84638231.js.map                                                        2.43 KiB
dist/client/assets/chunk-7b2a7fc5.js                                                            16.33 KiB / gzip: 3.33 KiB
Run Code Online (Sandbox Code Playgroud)

我假设这是由 Rollup 配置决定的,我想强制 Rollup 目标生成大小至少为 5KiB 的块,即如果有多个小块,则应将它们放在同一个文件中。

我怎么做?

同时,有一些非常大的块将受益于代码分割:

dist/client/assets/chunk-79a47c16.js                                                            233.29 KiB / gzip: 65.45 KiB
dist/client/assets/chunk-79a47c16.js.map                                                        1090.09 KiB
dist/client/assets/chunk-338b0152.js                                                            295.43 KiB / gzip: 64.69 KiB
dist/client/assets/chunk-338b0152.js.map                                                        726.44 KiB
dist/client/assets/chunk-4bad2a7c.js                                                            850.46 KiB / gzip: 175.06 KiB
dist/client/assets/chunk-4bad2a7c.js.map                                                        1842.03 KiB
dist/client/assets/chunk-00222315.js                                                            1220.59 KiB / gzip: 341.05 KiB
dist/client/assets/chunk-00222315.js.map                                                        3558.01 KiB
dist/client/assets/chunk-41093922.js                                                            1387.07 KiB / gzip: 364.90 KiB
dist/client/assets/chunk-41093922.js.map                                                        5215.41 KiB
Run Code Online (Sandbox Code Playgroud)

同样的问题,但相反:如何将它们分割成更小的文件?

rfr*_*tag 3

截至撰写本文时,您可以配置build.rollupOptions并传递output.experimentalMinChunkSize给汇总。请注意,大小以字节为单位,而不是通常情况下的 KB 或 MB。

在我的本地测试中,我还没有看到这一点得到尊重:

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

export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        experimentalMinChunkSize: 500_000,
      }
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

另请参阅PR文档