Ray Rahke
03/02/2024, 4:16 PMUnresolved reference: browser
why?Robert Jaros
03/02/2024, 4:23 PMephemient
03/02/2024, 4:23 PMRay Rahke
03/02/2024, 4:24 PMephemient
03/02/2024, 4:24 PMRay Rahke
03/02/2024, 4:25 PMRay Rahke
03/02/2024, 4:25 PMRay Rahke
03/02/2024, 4:25 PMRay Rahke
03/02/2024, 4:25 PMephemient
03/02/2024, 4:25 PMephemient
03/02/2024, 4:25 PMRay Rahke
03/02/2024, 4:28 PMRay Rahke
03/02/2024, 4:28 PMplugins {
kotlin("jvm") version "1.9.22"
kotlin("multiplatform") version "1.9.22"
}
group = "org.example"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
testImplementation("org.jetbrains.kotlin:kotlin-test")
implementation("org.jetbrains.kotlin:kotlin-stdlib-js")
}
tasks.test {
useJUnitPlatform()
}
kotlin {
jvmToolchain(21)
js {
browser {
}
binaries.executable()
}
sourceSets {
val jsMain by getting {
dependencies {
implementation("org.example.myproject:1.1.0")
}
}
}
}
ephemient
03/02/2024, 4:29 PMkotlin("jvm")
, and dependencies
block needs to move or be removedRay Rahke
03/02/2024, 4:30 PMRay Rahke
03/02/2024, 4:30 PMRay Rahke
03/02/2024, 4:30 PMephemient
03/02/2024, 4:30 PMdependencies
is Gradle dependencies, which are no longer correct in multiplatformRay Rahke
03/02/2024, 4:31 PMRay Rahke
03/02/2024, 4:31 PMephemient
03/02/2024, 4:31 PMdependencies
inside the sourceSet._name_
is a Kotlin Gradle Plugin API that manages multiplatform dependenciesephemient
03/02/2024, 4:32 PMephemient
03/02/2024, 4:32 PMRay Rahke
03/02/2024, 4:33 PMRay Rahke
03/02/2024, 4:33 PMdependencies {
implementation("org.example.myproject:1.1.0")
}
`Ray Rahke
03/02/2024, 4:33 PMRay Rahke
03/02/2024, 4:33 PMRay Rahke
03/02/2024, 4:33 PMephemient
03/02/2024, 4:34 PMRay Rahke
03/02/2024, 4:35 PMRay Rahke
03/02/2024, 4:35 PMRay Rahke
03/02/2024, 4:35 PMRay Rahke
03/02/2024, 4:36 PMRay Rahke
03/02/2024, 4:36 PMsourceSets {
val jsMain by getting {
dependencies {
}
}
}
Ray Rahke
03/02/2024, 4:36 PMRay Rahke
03/02/2024, 4:36 PMRay Rahke
03/02/2024, 4:36 PMephemient
03/02/2024, 4:36 PMRay Rahke
03/02/2024, 4:37 PMephemient
03/02/2024, 4:38 PMRay Rahke
03/02/2024, 4:38 PMRay Rahke
03/02/2024, 4:38 PMsourceSets {
val jsMain by getting {
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-js")
}
}
}
ephemient
03/02/2024, 4:38 PMRay Rahke
03/02/2024, 4:38 PMRay Rahke
03/02/2024, 4:38 PM:kotlin-stdlib-js"
Ray Rahke
03/02/2024, 4:38 PM-js
Ray Rahke
03/02/2024, 4:38 PMephemient
03/02/2024, 4:38 PMRay Rahke
03/02/2024, 4:38 PMRay Rahke
03/02/2024, 4:38 PMephemient
03/02/2024, 4:39 PMRay Rahke
03/02/2024, 4:39 PMimport kotlin.browser.document
import org.w3c.dom.*
Ray Rahke
03/02/2024, 4:39 PMephemient
03/02/2024, 4:40 PMsrc/jsMain/kotlin/**
and src/jsTest/kotlin/**
)Ray Rahke
03/02/2024, 4:41 PMephemient
03/02/2024, 4:41 PMRay Rahke
03/02/2024, 4:42 PMRay Rahke
03/02/2024, 4:43 PMRay Rahke
03/02/2024, 4:43 PMRay Rahke
03/02/2024, 4:43 PMRay Rahke
03/02/2024, 4:43 PMephemient
03/02/2024, 4:43 PMephemient
03/02/2024, 4:43 PMRay Rahke
03/02/2024, 4:44 PMephemient
03/02/2024, 4:44 PMRay Rahke
03/02/2024, 4:44 PMRay Rahke
03/02/2024, 4:44 PMRay Rahke
03/02/2024, 4:44 PMRay Rahke
03/02/2024, 4:44 PMephemient
03/02/2024, 4:44 PMjsMain/resources
can also exist and have a different meaningRay Rahke
03/02/2024, 4:45 PMRay Rahke
03/02/2024, 4:45 PMRay Rahke
03/02/2024, 4:45 PMephemient
03/02/2024, 4:45 PMRay Rahke
03/02/2024, 4:45 PMephemient
03/02/2024, 4:45 PMRay Rahke
03/02/2024, 4:46 PMRay Rahke
03/02/2024, 4:47 PMRay Rahke
03/02/2024, 4:47 PMsourceSets {
val jsMain by getting {
dependencies {
}
}
}
Ray Rahke
03/02/2024, 4:47 PMephemient
03/02/2024, 4:47 PMephemient
03/02/2024, 4:48 PMkotlin {
sourceSets {
commonTest {
dependencies {
implementation(kotlin("test")) // same as "org.jetbrains.kotlin:kotlin-test"
thoughephemient
03/02/2024, 4:50 PMkotlin {
js {
browser()
binaries.executable()
if you want ./gradlew jsRun
Ray Rahke
03/02/2024, 5:28 PMRay Rahke
03/02/2024, 5:28 PMephemient
03/02/2024, 5:28 PMRay Rahke
03/02/2024, 5:29 PMRay Rahke
03/02/2024, 5:29 PMRay Rahke
03/02/2024, 5:29 PMephemient
03/02/2024, 5:29 PMRay Rahke
03/02/2024, 5:31 PMRay Rahke
03/02/2024, 5:31 PMephemient
03/02/2024, 5:31 PMRay Rahke
03/02/2024, 5:32 PMRay Rahke
03/02/2024, 5:32 PMRay Rahke
03/02/2024, 5:32 PMephemient
03/02/2024, 5:33 PM_modulename_.js
, and is configurable in webpack settings, but yesRay Rahke
03/02/2024, 5:33 PMktc-js -output canvas.js canvas1.kt
Ray Rahke
03/02/2024, 5:33 PMRay Rahke
03/02/2024, 5:34 PM./gradlew jsRun
oh ill try thisRay Rahke
03/02/2024, 5:37 PMRay Rahke
03/02/2024, 5:37 PMRay Rahke
03/02/2024, 5:38 PM<body>
<canvas></canvas>
<script src="???"></script>
</body>
ephemient
03/02/2024, 5:39 PM_modulename_.js
like I just said, and as documented on https://kotlinlang.org/docs/running-kotlin-js.html#run-the-browser-targetRay Rahke
03/02/2024, 5:39 PMRay Rahke
03/02/2024, 5:41 PMRay Rahke
03/02/2024, 5:41 PMephemient
03/02/2024, 5:42 PMRay Rahke
03/02/2024, 5:42 PMephemient
03/02/2024, 5:42 PMrootProject.name
in settings.gradle(.kts)
.ephemient
03/02/2024, 5:42 PMRay Rahke
03/02/2024, 5:42 PMephemient
03/02/2024, 5:44 PMkotlin {
js {
browser {
commonWebpackConfig {
outputFileName = "whatever.js"
Ray Rahke
03/02/2024, 5:46 PMRay Rahke
03/02/2024, 5:46 PMRay Rahke
03/02/2024, 5:46 PM