[Gradle, JS] Add test with webpack + es modules
This commit is contained in:
+37
-1
@@ -174,7 +174,7 @@ class Kotlin2JsIrGradlePluginIT : AbstractKotlin2JsGradlePluginIT(true) {
|
|||||||
|
|
||||||
assertEquals(
|
assertEquals(
|
||||||
setOf(
|
setOf(
|
||||||
projectPath.resolve("build/js/packages/kotlin-js-browser-app/kotlin/kotlin-js-browser-base-js-ir.js").toFile(),
|
projectPath.resolve("build/js/packages/kotlin-js-browser-app/kotlin/kotlin-js-browser-base-js-ir.mjs").toFile(),
|
||||||
projectPath.resolve("build/js/packages/kotlin-js-browser-app/kotlin/foo/foo.txt").toFile(),
|
projectPath.resolve("build/js/packages/kotlin-js-browser-app/kotlin/foo/foo.txt").toFile(),
|
||||||
),
|
),
|
||||||
modified.toSet()
|
modified.toSet()
|
||||||
@@ -487,6 +487,42 @@ class Kotlin2JsIrGradlePluginIT : AbstractKotlin2JsGradlePluginIT(true) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DisplayName("Webpack works with ES modules")
|
||||||
|
@GradleTest
|
||||||
|
fun testWebpackWorksWithEsModules(gradleVersion: GradleVersion) {
|
||||||
|
project("kotlin-js-browser-project", gradleVersion) {
|
||||||
|
buildGradleKts.modify(::transformBuildScriptWithPluginsDsl)
|
||||||
|
|
||||||
|
subProject("app").buildGradleKts.modify { originalScript ->
|
||||||
|
buildString {
|
||||||
|
append(originalScript)
|
||||||
|
append(
|
||||||
|
"""
|
||||||
|
|
|
||||||
|
|tasks.named<org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink>("compileDevelopmentExecutableKotlinJs") {
|
||||||
|
| kotlinOptions {
|
||||||
|
| moduleKind = "es"
|
||||||
|
| }
|
||||||
|
|}
|
||||||
|
|
|
||||||
|
|tasks.named<org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink>("compileProductionExecutableKotlinJs") {
|
||||||
|
| kotlinOptions {
|
||||||
|
| moduleKind = "es"
|
||||||
|
| }
|
||||||
|
|}
|
||||||
|
|
|
||||||
|
""".trimMargin()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
build("browserProductionWebpack") {
|
||||||
|
assertTasksExecuted(":app:browserProductionWebpack")
|
||||||
|
assertFileExists(subProject("app").projectPath.resolve("build/${Distribution.DIST}/js/productionExecutable/app.js"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@DisplayName("Multiple targets works without clash")
|
@DisplayName("Multiple targets works without clash")
|
||||||
@GradleTest
|
@GradleTest
|
||||||
fun testMultipleJsTargets(gradleVersion: GradleVersion) {
|
fun testMultipleJsTargets(gradleVersion: GradleVersion) {
|
||||||
|
|||||||
+7
@@ -1,4 +1,5 @@
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.NpmVersions
|
import org.jetbrains.kotlin.gradle.targets.js.NpmVersions
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
@@ -76,3 +77,9 @@ tasks.named<org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile>("compileKotlinJs")
|
|||||||
tasks.named<org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile>("compileTestKotlinJs") {
|
tasks.named<org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile>("compileTestKotlinJs") {
|
||||||
kotlinOptions.freeCompilerArgs += "-Xforce-deprecated-legacy-compiler-usage"
|
kotlinOptions.freeCompilerArgs += "-Xforce-deprecated-legacy-compiler-usage"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.withType<org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink>().configureEach {
|
||||||
|
kotlinOptions {
|
||||||
|
moduleKind = "es"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user