Bernhard
10/02/2024, 9:50 AMkotlin {
js {
useEsModules()
@OptIn(ExperimentalKotlinGradlePluginApi::class)
compilerOptions {
moduleKind = JsModuleKind.MODULE_ES
useEsClasses = true
}
browser {
@OptIn(ExperimentalDistributionDsl::class)
distribution {
outputDirectory = file("dist")
}
webpackTask {
mainOutputFileName = "main.js"
}
testTask {
useKarma {
useFirefoxHeadless()
}
}
}
binaries.executable() // create a js file
}
sourceSets {
// enable kotlin test for all modules
val dataMain by creating {
resources {
srcDir("build/generated/resources")
}
}
val commonMain by getting {
dependencies {
implementation(libs.kotlinx.serialization.core)
implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.datetime)
implementation(libs.kotlinx.coroutines)
}
}
commonMain.dependsOn(dataMain)
val commonTest by getting {
dependencies {
implementation(libs.kotlin.test)
}
}
// define a jsMain module
val jsMain by getting {
dependencies {
implementation(project.dependencies.enforcedPlatform(libs.kotlin.wrappers))
implementation(libs.kotlin.wrappers.js)
implementation(libs.kotlin.plain.objects)
implementation(libs.kotlinx.html)
implementation(libs.kotlinx.coroutines.js)
implementation(libs.jsonschemavalidator.js)
api(libs.jquery)
}
}
val jsTest by getting {
dependencies {
implementation(libs.kotlin.test.js)
}
}
}
}
Edit: figured it out, resources.srcDir("build/generated/resources") in commonMain block instead of creating a custom dataMain set; looks like commonMain can't have dependencies anymore