From ec29250ca9bc6e7ca32d564bdb238bc3d6b27855 Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Sat, 24 Feb 2024 17:56:30 +0800 Subject: [PATCH] embedded Bootstrap inside webpack --- build.gradle | 1 + gradle.properties | 4 ++-- jpacrepo-frontend/build.gradle | 19 +++++++++++++------ .../kotlin/net/woggioni/jpacrepo/Main.kt | 1 + .../src/jsMain/resources/index.html | 10 +--------- .../src/jsMain/resources/scss/styles.scss | 2 ++ .../webpack.config.d/bootstrap.js | 3 +++ jpacrepo-frontend/webpack.config.d/css.js | 1 + jpacrepo-frontend/webpack.config.d/sass.js | 2 ++ 9 files changed, 26 insertions(+), 17 deletions(-) create mode 100644 jpacrepo-frontend/src/jsMain/resources/scss/styles.scss create mode 100644 jpacrepo-frontend/webpack.config.d/bootstrap.js create mode 100644 jpacrepo-frontend/webpack.config.d/css.js create mode 100644 jpacrepo-frontend/webpack.config.d/sass.js diff --git a/build.gradle b/build.gradle index 34ebcc3..47ddc37 100644 --- a/build.gradle +++ b/build.gradle @@ -126,6 +126,7 @@ tasks.named('deploy2Wildfly', Deploy2WildflyTask) { d2w -> d2w.rpcUsername = 'woggioni' // d2w.rpcUsername = 'admin' d2w.rpcPassword = '123456' + d2w.deploymentName = 'jpacrepo.war' } diff --git a/gradle.properties b/gradle.properties index 27df52b..65f5064 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ -jpacrepo.version=2024.02.22 +jpacrepo.version=2024.02.24 -lys.version=2024.02.22 +lys.version=2024.02.24 diff --git a/jpacrepo-frontend/build.gradle b/jpacrepo-frontend/build.gradle index cd47748..bf708cd 100644 --- a/jpacrepo-frontend/build.gradle +++ b/jpacrepo-frontend/build.gradle @@ -1,6 +1,6 @@ plugins { alias(catalog.plugins.kotlin.multiplatform) - id "org.jetbrains.kotlin.plugin.serialization" version "1.9.22" + alias(catalog.plugins.kotlin.serialization) } @@ -19,10 +19,14 @@ kotlin { dependencies { implementation catalog.klevtree implementation group: 'org.jetbrains.kotlinx', name: 'kotlinx-serialization-json', version: '1.6.2' -// implementation(npm("bootstrap", "5.3.2")) -// implementation(npm("bootstrap-icons", "1.11.3")) -// implementation(npm("style-loader", "3.3.4")) -// implementation(npm("css-loader", "6.10.0")) + + implementation(npm("bootstrap", "5.3.2")) + implementation(npm("bootstrap-icons", "1.11.3")) + implementation(npm("style-loader", "3.3.4")) + implementation(npm("css-loader", "6.10.0")) + implementation(npm("postcss-loader", "8.1.0")) + implementation(npm("sass", "1.71.1")) + implementation(npm("sass-loader", "14.1.1")) } } } @@ -30,7 +34,10 @@ kotlin { browser { runTask { sourceMaps = true - devServer.port = 8080 + devServer.port = 5080 + cssSupport { + enabled.set(false) + } } webpackTask { sourceMaps = false diff --git a/jpacrepo-frontend/src/jsMain/kotlin/net/woggioni/jpacrepo/Main.kt b/jpacrepo-frontend/src/jsMain/kotlin/net/woggioni/jpacrepo/Main.kt index 49fa716..aeff694 100644 --- a/jpacrepo-frontend/src/jsMain/kotlin/net/woggioni/jpacrepo/Main.kt +++ b/jpacrepo-frontend/src/jsMain/kotlin/net/woggioni/jpacrepo/Main.kt @@ -370,6 +370,7 @@ private fun HtmlBuilder.buildPackageSearchSection(commonElement: Element) { } fun main(vararg args: String) { + js("require ('./scss/styles.scss');") HtmlBuilder.of(document, document.body as HTMLElement) { main { main -> div { diff --git a/jpacrepo-frontend/src/jsMain/resources/index.html b/jpacrepo-frontend/src/jsMain/resources/index.html index e1adc0b..d9dd8b4 100644 --- a/jpacrepo-frontend/src/jsMain/resources/index.html +++ b/jpacrepo-frontend/src/jsMain/resources/index.html @@ -4,15 +4,7 @@ - - - - Hello World! + Jpacrepo \ No newline at end of file diff --git a/jpacrepo-frontend/src/jsMain/resources/scss/styles.scss b/jpacrepo-frontend/src/jsMain/resources/scss/styles.scss new file mode 100644 index 0000000..461a0fe --- /dev/null +++ b/jpacrepo-frontend/src/jsMain/resources/scss/styles.scss @@ -0,0 +1,2 @@ +@import "bootstrap/scss/bootstrap"; +@import "bootstrap-icons/font/bootstrap-icons.min.css"; \ No newline at end of file diff --git a/jpacrepo-frontend/webpack.config.d/bootstrap.js b/jpacrepo-frontend/webpack.config.d/bootstrap.js new file mode 100644 index 0000000..c9ac06d --- /dev/null +++ b/jpacrepo-frontend/webpack.config.d/bootstrap.js @@ -0,0 +1,3 @@ +config.module.rules.push({test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, type: 'asset'}); +config.module.rules.push({test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, type: 'asset'}); +config.module.rules.push({test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, type: 'asset/resource'}); diff --git a/jpacrepo-frontend/webpack.config.d/css.js b/jpacrepo-frontend/webpack.config.d/css.js new file mode 100644 index 0000000..fd904af --- /dev/null +++ b/jpacrepo-frontend/webpack.config.d/css.js @@ -0,0 +1 @@ +config.module.rules.push({ test: /\.css$/, use: ["style-loader", { loader: "css-loader", options: {sourceMap: false} } ] }); diff --git a/jpacrepo-frontend/webpack.config.d/sass.js b/jpacrepo-frontend/webpack.config.d/sass.js new file mode 100644 index 0000000..6c50675 --- /dev/null +++ b/jpacrepo-frontend/webpack.config.d/sass.js @@ -0,0 +1,2 @@ +config.module.rules.push({ test: /\.s[ac]ss$/, use: ["style-loader", { loader: "css-loader", options: {sourceMap: false} }, "sass-loader" ] }); +