From 9e243a469ae6544e8cf523ad09b959f541c3f565 Mon Sep 17 00:00:00 2001 From: Robert Jaros Date: Wed, 11 Mar 2020 16:18:17 +0100 Subject: Upgrade to Kotlin 1.3.70 + other dependencies (Coroutinse, Serialization, Spring Boot) Major refactoring of build architecture. --- .../kvision-bootstrap-upload/build.gradle | 13 ---- .../kvision-bootstrap-upload/build.gradle.kts | 71 ++++++++++++++++++++++ .../package.json.d/project.info | 3 - .../webpack.config.d/bootstrap.js | 3 + .../webpack.config.d/file.js | 9 ++- .../webpack.config.d/jquery.js | 14 +++-- 6 files changed, 89 insertions(+), 24 deletions(-) delete mode 100644 kvision-modules/kvision-bootstrap-upload/build.gradle create mode 100644 kvision-modules/kvision-bootstrap-upload/build.gradle.kts delete mode 100644 kvision-modules/kvision-bootstrap-upload/package.json.d/project.info create mode 100644 kvision-modules/kvision-bootstrap-upload/webpack.config.d/bootstrap.js (limited to 'kvision-modules/kvision-bootstrap-upload') diff --git a/kvision-modules/kvision-bootstrap-upload/build.gradle b/kvision-modules/kvision-bootstrap-upload/build.gradle deleted file mode 100644 index 208e1e21..00000000 --- a/kvision-modules/kvision-bootstrap-upload/build.gradle +++ /dev/null @@ -1,13 +0,0 @@ -apply from: "../shared.gradle" - -dependencies { - compile "org.jetbrains.kotlinx:kotlinx-coroutines-core-js:$coroutinesVersion" -} - -kotlinFrontend { - - npm { - dependency("bootstrap-fileinput", "5.0.8") - } - -} diff --git a/kvision-modules/kvision-bootstrap-upload/build.gradle.kts b/kvision-modules/kvision-bootstrap-upload/build.gradle.kts new file mode 100644 index 00000000..4fcaa183 --- /dev/null +++ b/kvision-modules/kvision-bootstrap-upload/build.gradle.kts @@ -0,0 +1,71 @@ +buildscript { + extra.set("production", (findProperty("prod") ?: findProperty("production") ?: "false") == "true") +} + +plugins { + kotlin("js") + id("maven-publish") +} + +repositories() + +val coroutinesVersion: String by project + +kotlin { + kotlinJsTargets() +} + +dependencies { + implementation(kotlin("stdlib-js")) + api(project(":kvision-modules:kvision-common-types")) + api(rootProject) + api("org.jetbrains.kotlinx:kotlinx-coroutines-core-js:$coroutinesVersion") + implementation(npm("bootstrap-fileinput", "5.0.8")) + 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() + +fun copyResources() { + copy { + from("$buildDir/processedResources/Js/main") + into("${rootProject.buildDir}/js/packages/kvision-${project.name}/kotlin") + } + copy { + from("$buildDir/processedResources/Js/main") + into("${rootProject.buildDir}/js/packages/kvision-${project.name}/kotlin-dce") + } +} + +tasks { + getByName("JsJar", Jar::class) { + from("${rootProject.buildDir}/js/packages/kvision-${project.name}/package.json") + } + getByName("compileTestKotlinJs") { + doLast { + copyResources() + } + } + getByName("processDceKotlinJs") { + doLast { + copyResources() + } + } +} diff --git a/kvision-modules/kvision-bootstrap-upload/package.json.d/project.info b/kvision-modules/kvision-bootstrap-upload/package.json.d/project.info deleted file mode 100644 index d789d81b..00000000 --- a/kvision-modules/kvision-bootstrap-upload/package.json.d/project.info +++ /dev/null @@ -1,3 +0,0 @@ -{ - "description": "KVision Upload module" -} diff --git a/kvision-modules/kvision-bootstrap-upload/webpack.config.d/bootstrap.js b/kvision-modules/kvision-bootstrap-upload/webpack.config.d/bootstrap.js new file mode 100644 index 00000000..35b28e6a --- /dev/null +++ b/kvision-modules/kvision-bootstrap-upload/webpack.config.d/bootstrap.js @@ -0,0 +1,3 @@ +config.module.rules.push({test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff'}); +config.module.rules.push({test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=application/octet-stream'}); +config.module.rules.push({test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file-loader'}); diff --git a/kvision-modules/kvision-bootstrap-upload/webpack.config.d/file.js b/kvision-modules/kvision-bootstrap-upload/webpack.config.d/file.js index a5c7b5da..653ca21f 100644 --- a/kvision-modules/kvision-bootstrap-upload/webpack.config.d/file.js +++ b/kvision-modules/kvision-bootstrap-upload/webpack.config.d/file.js @@ -1,6 +1,9 @@ config.module.rules.push( { - test: /\.(jpe?g|png|gif)$/i, - loader: 'file-loader' + test: /\.(jpe?g|png|gif|svg)$/i, + loader: 'file-loader', + options: { + esModule: false, + }, } -); \ No newline at end of file +); diff --git a/kvision-modules/kvision-bootstrap-upload/webpack.config.d/jquery.js b/kvision-modules/kvision-bootstrap-upload/webpack.config.d/jquery.js index bf5a1a20..e6c6b219 100644 --- a/kvision-modules/kvision-bootstrap-upload/webpack.config.d/jquery.js +++ b/kvision-modules/kvision-bootstrap-upload/webpack.config.d/jquery.js @@ -1,5 +1,9 @@ -config.plugins.push(new webpack.ProvidePlugin({ - $: "jquery", - jQuery: "jquery", - "window.jQuery": "jquery" -})); +;(function() { + const webpack = require('webpack') + + config.plugins.push(new webpack.ProvidePlugin({ + $: "jquery", + jQuery: "jquery", + "window.jQuery": "jquery" + })); +})(); -- cgit