Skip to content

Commit 0d4db88

Browse files
committed
rolldown-vite ready
1 parent d56885c commit 0d4db88

3 files changed

Lines changed: 22 additions & 11 deletions

File tree

package-lock.json

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
"es-check": "^9.5.3",
5858
"esbuild": ">=0.25.0",
5959
"rimraf": ">=6.0.1",
60+
"rollup": ">=4.55.1",
6061
"typescript": ">=5.7.2",
6162
"vite": ">=6.2.5"
6263
}

src/index.ts

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
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"
33
import pc from "picocolors"
44
import { minify as htmlMinify } from 'html-minifier-terser'
55
import { JSDOM } from 'jsdom'
@@ -28,19 +28,28 @@ export function singleFileCompression(opt?: Options): PluginOption {
2828

2929
export default singleFileCompression
3030

31-
function setConfig(config: UserConfig) {
31+
function setConfig(this: ConfigPluginContext, config: UserConfig, env: ConfigEnv) {
3232
config.base ??= './'
3333

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
3645

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+
)
4151

42-
config.build.rollupOptions ??= {}
43-
for (const output of [config.build.rollupOptions.output ??= {}].flat(1)) {
52+
for (const output of [rollupOptions.output ??= {}].flat(1)) {
4453
output.inlineDynamicImports ??= true
4554
}
4655
}

0 commit comments

Comments
 (0)