|
1 | | -import { UserConfig, PluginOption, ResolvedConfig } from "vite" |
2 | | -import { OutputChunk, OutputAsset, OutputBundle } from "rollup" |
| 1 | +import { UserConfig, PluginOption, ResolvedConfig, BuildEnvironmentOptions, ConfigPluginContext, ConfigEnv } from "vite" |
| 2 | +import { OutputChunk, OutputAsset, OutputBundle, RollupOptions } from "rollup" |
3 | 3 | import pc from "picocolors" |
4 | 4 | import { minify as htmlMinify } from 'html-minifier-terser' |
5 | 5 | import { JSDOM } from 'jsdom' |
@@ -28,19 +28,28 @@ export function singleFileCompression(opt?: Options): PluginOption { |
28 | 28 |
|
29 | 29 | export default singleFileCompression |
30 | 30 |
|
31 | | -function setConfig(config: UserConfig) { |
| 31 | +function setConfig(this: ConfigPluginContext, config: UserConfig, env: ConfigEnv) { |
32 | 32 | config.base ??= './' |
33 | 33 |
|
34 | | - config.build ??= {} |
35 | | - config.build.cssCodeSplit ??= false |
| 34 | + interface RolldownViteBuildOptionsLike extends BuildEnvironmentOptions { |
| 35 | + rolldownOptions?: RollupOptions |
| 36 | + } |
| 37 | + |
| 38 | + const build = (config.build ??= {}) as RolldownViteBuildOptionsLike |
| 39 | + |
| 40 | + build.cssCodeSplit ??= false |
| 41 | + build.assetsInlineLimit ??= () => true |
| 42 | + build.chunkSizeWarningLimit ??= Number.MAX_SAFE_INTEGER |
| 43 | + build.modulePreload ??= { polyfill: false } |
| 44 | + build.reportCompressedSize ??= false |
36 | 45 |
|
37 | | - config.build.assetsInlineLimit ??= () => true |
38 | | - config.build.chunkSizeWarningLimit ??= Number.MAX_SAFE_INTEGER |
39 | | - config.build.modulePreload ??= { polyfill: false } |
40 | | - config.build.reportCompressedSize ??= false |
| 46 | + const rollupOptions = ( |
| 47 | + (this.meta as any).rolldownVersion |
| 48 | + ? (build.rolldownOptions ?? build.rollupOptions ?? (build.rolldownOptions = {})) |
| 49 | + : (build.rollupOptions ??= {}) |
| 50 | + ) |
41 | 51 |
|
42 | | - config.build.rollupOptions ??= {} |
43 | | - for (const output of [config.build.rollupOptions.output ??= {}].flat(1)) { |
| 52 | + for (const output of [rollupOptions.output ??= {}].flat(1)) { |
44 | 53 | output.inlineDynamicImports ??= true |
45 | 54 | } |
46 | 55 | } |
|
0 commit comments