João Paulo Figueira
06/24/2022, 10:29 AM[webpack-cli] TypeError: cli.isMultipleCompiler is not a function
Any insights?Robert Jaros
06/24/2022, 10:50 AMRobert Jaros
06/24/2022, 10:51 AMRobert Jaros
06/24/2022, 10:52 AMJoão Paulo Figueira
06/24/2022, 10:52 AMJoão Paulo Figueira
06/24/2022, 10:54 AMJoão Paulo Figueira
06/24/2022, 10:55 AMRobert Jaros
06/24/2022, 10:55 AMJoão Paulo Figueira
06/24/2022, 10:55 AMJoão Paulo Figueira
06/24/2022, 10:55 AMJoão Paulo Figueira
06/24/2022, 10:58 AM* What went wrong:
Could not determine the dependencies of task ':frontendBrowserDevelopmentRun'.
> Task with path 'frontendDevelopmentExecutableCompileSync' not found in root project 'vedmap'.
Robert Jaros
06/24/2022, 11:02 AMRobert Jaros
06/24/2022, 11:02 AMbuild.gradle.kts
file?João Paulo Figueira
06/24/2022, 11:03 AMJoão Paulo Figueira
06/24/2022, 11:03 AMimport org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
import org.springframework.boot.gradle.tasks.bundling.BootJar
import org.springframework.boot.gradle.tasks.run.BootRun
plugins {
val kotlinVersion: String by System.getProperties()
kotlin("plugin.serialization") version kotlinVersion
kotlin("multiplatform") version kotlinVersion
id("io.spring.dependency-management") version System.getProperty("dependencyManagementPluginVersion")
id("org.springframework.boot") version System.getProperty("springBootVersion")
kotlin("plugin.spring") version kotlinVersion
val kvisionVersion: String by System.getProperties()
id("io.kvision") version kvisionVersion
}
version = "1.0.0-SNAPSHOT"
group = "io.joaofig"
repositories {
mavenCentral()
jcenter()
mavenLocal()
}
// Versions
val kotlinVersion: String by System.getProperties()
val kvisionVersion: String by System.getProperties()
val coroutinesVersion: String by project
val exposedVersion: String by project
val sqliteVersion: String by project
val uberH3Version: String by project
val webDir = file("src/frontendMain/web")
val mainClassName = "io.joaofig.vedmap.MainKt"
kotlin {
jvm("backend") {
withJava()
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
freeCompilerArgs = listOf("-Xjsr305=strict")
}
}
}
js("frontend") {
browser {
runTask {
outputFileName = "main.bundle.js"
sourceMaps = false
devServer = KotlinWebpackConfig.DevServer(
open = false,
port = 3000,
proxy = mutableMapOf(
"/kv/*" to "<http://localhost:8080>",
"/kvws/*" to mapOf("target" to "<ws://localhost:8080>", "ws" to true)
),
static = mutableListOf("$buildDir/processedResources/frontend/main")
)
}
webpackTask {
outputFileName = "main.bundle.js"
}
testTask {
useKarma {
useChromeHeadless()
}
}
}
binaries.executable()
}
sourceSets {
val commonMain by getting {
dependencies {
api("io.kvision:kvision-server-spring-boot:$kvisionVersion")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
}
kotlin.srcDir("build/generated-src/common")
}
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
}
}
val backendMain by getting {
dependencies {
implementation(kotlin("stdlib-jdk8"))
implementation(kotlin("reflect"))
implementation("org.springframework.boot:spring-boot-starter")
implementation("org.springframework.boot:spring-boot-devtools")
implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.jetbrains.exposed:exposed-core:$exposedVersion")
implementation("org.jetbrains.exposed:exposed-dao:$exposedVersion")
implementation("org.jetbrains.exposed:exposed-jdbc:$exposedVersion")
implementation("org.xerial:sqlite-jdbc:$sqliteVersion")
implementation("com.uber:h3:$uberH3Version")
}
}
val backendTest by getting {
dependencies {
implementation(kotlin("test"))
implementation(kotlin("test-junit"))
implementation("org.springframework.boot:spring-boot-starter-test")
}
}
val frontendMain by getting {
resources.srcDir(webDir)
dependencies {
implementation("io.kvision:kvision:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-css:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-select:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-select-remote:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-datetime:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-spinner:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-upload:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-typeahead:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-typeahead-remote:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-dialog:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-icons:$kvisionVersion")
implementation("io.kvision:kvision-fontawesome:$kvisionVersion")
implementation("io.kvision:kvision-state:$kvisionVersion")
implementation("io.kvision:kvision-state-flow:$kvisionVersion")
implementation("io.kvision:kvision-rest:$kvisionVersion")
implementation("io.kvision:kvision-jquery:$kvisionVersion")
implementation("io.kvision:kvision-handlebars:$kvisionVersion")
implementation("io.kvision:kvision-i18n:$kvisionVersion")
implementation("io.kvision:kvision-richtext:$kvisionVersion")
implementation("io.kvision:kvision-chart:$kvisionVersion")
implementation("io.kvision:kvision-datacontainer:$kvisionVersion")
implementation("io.kvision:kvision-tabulator:$kvisionVersion")
implementation("io.kvision:kvision-tabulator-remote:$kvisionVersion")
implementation("io.kvision:kvision-simple-select-remote:$kvisionVersion")
implementation("io.kvision:kvision-pace:$kvisionVersion")
implementation("io.kvision:kvision-maps:$kvisionVersion")
implementation("io.kvision:kvision-toast:$kvisionVersion")
implementation("io.kvision:kvision-print:$kvisionVersion")
implementation(npm("leaflet-contextmenu", "^1.4.0"))
}
kotlin.srcDir("build/generated-src/frontend")
}
val frontendTest by getting {
dependencies {
implementation(kotlin("test-js"))
implementation("io.kvision:kvision-testutils:$kvisionVersion")
}
}
}
}
afterEvaluate {
rootProject.extensions.configure<org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension> {
versions.webpackCli.version="4.10.0"
}
tasks {
create("frontendArchive", Jar::class).apply {
dependsOn("frontendBrowserProductionWebpack")
group = "package"
archiveAppendix.set("frontend")
val distribution =
project.tasks.getByName("frontendBrowserProductionWebpack", KotlinWebpack::class).destinationDirectory!!
from(distribution) {
include("*.*")
}
from(webDir)
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
into("/public")
inputs.files(distribution, webDir)
outputs.file(archiveFile)
manifest {
attributes(
mapOf(
"Implementation-Title" to rootProject.name,
"Implementation-Group" to rootProject.group,
"Implementation-Version" to rootProject.version,
"Timestamp" to System.currentTimeMillis()
)
)
}
}
getByName("backendProcessResources", Copy::class) {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
getByName("bootJar", BootJar::class) {
dependsOn("frontendArchive", "backendMainClasses")
classpath = files(
kotlin.targets["backend"].compilations["main"].output.allOutputs +
project.configurations["backendRuntimeClasspath"] +
(project.tasks["frontendArchive"] as Jar).archiveFile
)
}
getByName("jar", Jar::class).apply {
dependsOn("bootJar")
}
getByName("bootRun", BootRun::class) {
dependsOn("backendMainClasses")
classpath = files(
kotlin.targets["backend"].compilations["main"].output.allOutputs +
project.configurations["backendRuntimeClasspath"]
)
}
create("backendRun") {
dependsOn("bootRun")
group = "run"
}
}
}
Robert Jaros
06/24/2022, 11:04 AMJoão Paulo Figueira
06/24/2022, 11:05 AMJoão Paulo Figueira
06/24/2022, 11:05 AMRobert Jaros
06/24/2022, 11:05 AMJoão Paulo Figueira
06/24/2022, 11:06 AMRobert Jaros
06/24/2022, 11:06 AMJoão Paulo Figueira
06/24/2022, 11:06 AMkotlin.js.compiler=legacy
João Paulo Figueira
06/24/2022, 11:06 AMRobert Jaros
06/24/2022, 11:07 AMlegacy
to ir
João Paulo Figueira
06/24/2022, 11:07 AMRobert Jaros
06/24/2022, 11:08 AMRobert Jaros
06/24/2022, 11:09 AMJoão Paulo Figueira
06/24/2022, 11:09 AM