From 95f5ffe13a874a397a22e822a00218d3f82e84eb Mon Sep 17 00:00:00 2001 From: jbion Date: Mon, 8 Jul 2019 20:39:02 +0200 Subject: Attempt at Kotlin/JS EAP build 1.3.50-eap-54 --- sw-ui-kt/build.gradle.kts | 69 ++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 40 deletions(-) (limited to 'sw-ui-kt/build.gradle.kts') diff --git a/sw-ui-kt/build.gradle.kts b/sw-ui-kt/build.gradle.kts index 5c84a917..a3b453ee 100644 --- a/sw-ui-kt/build.gradle.kts +++ b/sw-ui-kt/build.gradle.kts @@ -1,29 +1,40 @@ -import org.jetbrains.kotlin.gradle.frontend.util.frontendExtension -import org.jetbrains.kotlin.gradle.frontend.webpack.WebPackExtension -import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile +import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack plugins { - id("kotlin2js") - id("org.jetbrains.kotlin.frontend") //version "0.0.45" + kotlin("js") } repositories { - jcenter() + // repository added for kotlin-wrappers resolutions maven(url = "https://kotlin.bintray.com/kotlin-js-wrappers") } -dependencies { - implementation(kotlin("stdlib-js")) - implementation(project(":sw-common-model")) - - implementation("org.jetbrains:kotlin-react-dom:16.6.0-pre.67-kotlin-1.3.11") +kotlin { + target { + browser() + } + sourceSets { + main { + dependencies { + implementation(kotlin("stdlib-js")) + implementation(project(":sw-client")) + + implementation("org.jetbrains:kotlin-react:16.6.0-pre.78-kotlin-1.3.41") + implementation(npm("react", "16.8.3")) + implementation("org.jetbrains:kotlin-react-dom:16.6.0-pre.78-kotlin-1.3.41") + implementation(npm("react-dom", "16.8.3")) + // implementation(npm("@blueprintjs/core", "3.15.1")) + // implementation(npm("react-redux", "5.0.7")) + } + } + } } val staticFilesBuildDir = "${project.buildDir.path}/static" val staticFilesSrcDir = "$projectDir/src/main/web" tasks { - "compileKotlin2Js"(Kotlin2JsCompile::class) { + "compileKotlinJs"(KotlinJsCompile::class) { kotlinOptions.metaInfo = true kotlinOptions.outputFile = "${project.buildDir.path}/js/${project.name}.js" kotlinOptions.sourceMap = true @@ -32,15 +43,16 @@ tasks { } register("copyStatic") { - dependsOn("bundle") + dependsOn("assemble") from("${project.buildDir.path}/bundle", staticFilesSrcDir) into(staticFilesBuildDir) - val webpack = project.frontendExtension.bundles().first { it is WebPackExtension } as WebPackExtension - val bundleName = webpack.bundleName - val publicPath = webpack.publicPath + val webpack = project.tasks.withType(KotlinWebpack::class).first() + val bundleFile = webpack.outputPath.name + val publicPath = "/" // TODO get public path from webpack config + filesMatching("*.html") { - expand("bundle" to "$bundleName.bundle.js", "publicPath" to publicPath) + expand("bundle" to bundleFile, "publicPath" to publicPath) } } @@ -48,26 +60,3 @@ tasks { dependsOn("copyStatic") } } - -kotlinFrontend { - - sourceMaps = true - - webpack { - bundleName = "seven-wonders-ui" - contentPath = file(staticFilesBuildDir) - } - - npm { -// dependency("@blueprintjs/core", "3.15.1") - dependency("react", "16.8.3") - dependency("react-dom", "16.8.3") - dependency("react-redux", "5.0.7") - } -} - -fun org.jetbrains.kotlin.gradle.frontend.KotlinFrontendExtension.webpack( - configure: org.jetbrains.kotlin.gradle.frontend.webpack.WebPackExtension.() -> Unit -) { - bundle("webpack", delegateClosureOf(configure)) -} -- cgit