@file:OptIn(ExperimentalKotlinGradlePluginApi::class, ExperimentalDistributionDsl::class) import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalDistributionDsl plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.ktor) alias(libs.plugins.kotlinx.serialization) } group = "online.maestoso" version = "0.1.0" kotlin { js { browser { distribution { outputDirectory = file("src/generated/resources/js") } } useEsModules() binaries.executable() compilerOptions { target = "es2015" optIn.add("kotlin.js.ExperimentalJsExport") } generateTypeScriptDefinitions() } jvm { mainRun { mainClass = "online.maestoso.cofront.CofrontKt" } binaries { executable { mainClass.set("online.maestoso.cofront.CofrontKt") } } } sourceSets { commonMain.dependencies { implementation(libs.bundles.commonMain) } commonTest.dependencies { implementation(libs.bundles.commonTest) } jvmMain { resources.setSrcDirs(resources.srcDirs + file("src/generated/resources")) jvmToolchain(21) dependencies { implementation(libs.bundles.jvmMain) } tasks["jvmProcessResources"].dependsOn += tasks["jsBrowserDistribution"] } jvmTest.dependencies { implementation(libs.bundles.jvmTest) } jsMain { dependencies { implementation(libs.bundles.jsMain) } } } }