buildscript { extra.set("production", (findProperty("prod") ?: findProperty("production") ?: "false") == "true") } plugins { kotlin("js") id("maven-publish") } repositories() val kotlinReactVersion: String by project kotlin { kotlinJsTargets() } dependencies { implementation(kotlin("stdlib-js")) api(rootProject) api("org.jetbrains:kotlin-react:$kotlinReactVersion") api("org.jetbrains:kotlin-react-dom:$kotlinReactVersion") implementation(npm("react", "16.13.1")) implementation(npm("react-dom", "16.13.1")) testImplementation(kotlin("test-js")) } val sourcesJar by tasks.registering(Jar::class) { archiveClassifier.set("sources") from(kotlin.sourceSets.main.get().kotlin) } publishing { publications { create("kotlin") { from(components["kotlin"]) artifact(tasks["sourcesJar"]) pom { defaultPom() } } } } setupPublication() tasks { getByName("JsJar", Jar::class) { from("${rootProject.buildDir}/js/packages/kvision-${project.name}/package.json") { filter { it.replace("\"main\": \"kotlin/kvision-kvision", "\"main\": \"kvision-kvision") } } } }