diff --git a/vite-base/src/main/kotlin/config/Dump.kt b/vite-base/src/main/kotlin/config/Dump.kt index d9e8a17..cd54b86 100644 --- a/vite-base/src/main/kotlin/config/Dump.kt +++ b/vite-base/src/main/kotlin/config/Dump.kt @@ -13,5 +13,6 @@ fun DumpDsl.dumpViteConfig(config: ViteConfig) { section("Build") { value("Target", config.build.target) + value("ModulePreload", config.build.modulePreload) } } diff --git a/vite-base/src/main/kotlin/config/ViteBuildConfig.kt b/vite-base/src/main/kotlin/config/ViteBuildConfig.kt index 770f09d..4872a7d 100644 --- a/vite-base/src/main/kotlin/config/ViteBuildConfig.kt +++ b/vite-base/src/main/kotlin/config/ViteBuildConfig.kt @@ -39,6 +39,28 @@ interface ViteBuildConfig { @get:Internal val target: Property + /** + * Whether to automatically inject a module preload polyfill. + * + * Currently, does not support the `resolveDependencies` function. + * + * ### Example + * + * ```kotlin + * vite { + * build { + * modulePreload.set(false) + * } + * } + * ``` + * + * ### External resources + * + * - [Official documentation](https://vitejs.dev/config/build-options.html#build-modulepreload) + */ + @get:Internal + val modulePreload: Property + /** * Output directory of the production build. * diff --git a/vite-base/src/main/kotlin/config/ViteConfig.kt b/vite-base/src/main/kotlin/config/ViteConfig.kt index 96807eb..4f8ae5b 100644 --- a/vite-base/src/main/kotlin/config/ViteConfig.kt +++ b/vite-base/src/main/kotlin/config/ViteConfig.kt @@ -37,6 +37,7 @@ interface ViteConfig { base.convention(other.base) plugins.convention(other.plugins) build.target.convention(other.build.target) + build.modulePreload.convention(other.build.modulePreload) build.outDir.convention(other.build.outDir) } diff --git a/vite-base/src/main/kotlin/tasks/WriteConfig.kt b/vite-base/src/main/kotlin/tasks/WriteConfig.kt index e76c25a..c6aa5cd 100644 --- a/vite-base/src/main/kotlin/tasks/WriteConfig.kt +++ b/vite-base/src/main/kotlin/tasks/WriteConfig.kt @@ -43,6 +43,7 @@ abstract class WriteConfig : DefaultTask() { inputs.property("base", config.base) inputs.property("root", config.root.map { it.toString() }) inputs.property("build.target", config.build.target) + inputs.property("build.modulePreload", config.build.modulePreload) inputs.property("build.outDir", config.build.outDir.map { it.toString() }) } @@ -75,6 +76,7 @@ abstract class WriteConfig : DefaultTask() { ], build: { target: '${config.build.target.get()}', + modulePreload: ${config.build.modulePreload.get()}, outDir: '${config.build.outDir.get().asFile.invariantSeparatorsPath}', }, } diff --git a/vite-kotlin/src/main/kotlin/config/Defaults.kt b/vite-kotlin/src/main/kotlin/config/Defaults.kt index 1a76b69..3c31a17 100644 --- a/vite-kotlin/src/main/kotlin/config/Defaults.kt +++ b/vite-kotlin/src/main/kotlin/config/Defaults.kt @@ -10,4 +10,5 @@ internal fun ViteConfig.defaultConfiguration() { // Build build.target.convention("modules") + build.modulePreload.convention(true) }