Chrys
09/06/2023, 3:46 PM> Task :client:web:jsBrowserDevelopmentRun
<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: <http://localhost:8081/>
<i> [webpack-dev-server] On Your Network (IPv4): <http://192.168.1.8:8081/>
<i> [webpack-dev-server] Content not from webpack is served from 'kotlin, ..\..\..\..\client\web\build\processedResources\js\main' directory
<i> [webpack-dev-middleware] wait until bundle finished: /
Chrys
09/06/2023, 3:47 PMChrimaeon
09/06/2023, 3:58 PMChrys
09/06/2023, 3:59 PMChrimaeon
09/06/2023, 4:01 PMChrys
09/06/2023, 4:02 PMChrimaeon
09/06/2023, 4:04 PMbuild.gradle
files.Chrimaeon
09/06/2023, 4:04 PMChrys
09/06/2023, 4:05 PMChrys
09/07/2023, 9:49 AMcustomer-portal-web.js:8 Uncaught Error: Error loading module 'customer-portal-web'. Its dependency 'react-dom/client' was not found. Please, check whether 'react-dom/client' is loaded prior to 'customer-portal-web'.
which is curious, given that react-dom/client comes with react-dom dependency:
plugins {
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.kotlin.serialization)
}
val kotlinWrappersVersion = "1.0.0-pre.623"
kotlin {
js(IR) {
binaries.executable()
browser {
// see <https://youtrack.jetbrains.com/issue/KTIJ-26086>
@Suppress("DEPRECATION")
commonWebpackConfig {
cssSupport {
enabled.set(true)
}
}
}
}
sourceSets {
val jsMain by getting {
dependencies {
implementation(project(":shared"))
implementation(kotlin("stdlib-js"))
implementation(enforcedPlatform("org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:$kotlinWrappersVersion"))
implementation("org.jetbrains.kotlin-wrappers:kotlin-react")
implementation("org.jetbrains.kotlin-wrappers:kotlin-react-dom")
implementation("org.jetbrains.kotlin-wrappers:kotlin-emotion")
implementation("org.jetbrains.kotlin-wrappers:kotlin-mui")
}
}
}
}
Artem Kobzar
09/07/2023, 11:18 AMChrys
09/07/2023, 1:11 PM(function (root, factory) {
if (typeof define === 'function' && define.amd)
define(['exports', 'react-dom/client', '@emotion/css', 'react', './kotlin-kotlin-stdlib-js-ir.js', './kotlin-wrappers-kotlin-react-js-ir.js', './kotlin-wrappers-kotlin-react-dom-js-ir.js'], factory);
else if (typeof exports === 'object')
factory(module.exports, require('react-dom/client'), require('@emotion/css'), require('react'), require('./kotlin-kotlin-stdlib-js-ir.js'), require('./kotlin-wrappers-kotlin-react-js-ir.js'), require('./kotlin-wrappers-kotlin-react-dom-js-ir.js'));
else {
if (typeof this['react-dom/client'] === 'undefined') {
throw new Error("Error loading module 'customer-portal-web'. Its dependency 'react-dom/client' was not found. Please, check whether 'react-dom/client' is loaded prior to 'customer-portal-web'.");
}
if (typeof this['@emotion/css'] === 'undefined') {
throw new Error("Error loading module 'customer-portal-web'. Its dependency '@emotion/css' was not found. Please, check whether '@emotion/css' is loaded prior to 'customer-portal-web'.");
}
if (typeof react === 'undefined') {
throw new Error("Error loading module 'customer-portal-web'. Its dependency 'react' was not found. Please, check whether 'react' is loaded prior to 'customer-portal-web'.");
}
if (typeof this['kotlin-kotlin-stdlib-js-ir'] === 'undefined') {
throw new Error("Error loading module 'customer-portal-web'. Its dependency 'kotlin-kotlin-stdlib-js-ir' was not found. Please, check whether 'kotlin-kotlin-stdlib-js-ir' is loaded prior to 'customer-portal-web'.");
}
if (typeof this['kotlin-wrappers-kotlin-react-js-ir'] === 'undefined') {
throw new Error("Error loading module 'customer-portal-web'. Its dependency 'kotlin-wrappers-kotlin-react-js-ir' was not found. Please, check whether 'kotlin-wrappers-kotlin-react-js-ir' is loaded prior to 'customer-portal-web'.");
}
if (typeof this['kotlin-wrappers-kotlin-react-dom-js-ir'] === 'undefined') {
throw new Error("Error loading module 'customer-portal-web'. Its dependency 'kotlin-wrappers-kotlin-react-dom-js-ir' was not found. Please, check whether 'kotlin-wrappers-kotlin-react-dom-js-ir' is loaded prior to 'customer-portal-web'.");
}
root['customer-portal-web'] = factory(typeof this['customer-portal-web'] === 'undefined' ? {} : this['customer-portal-web'], this['react-dom/client'], this['@emotion/css'], react, this['kotlin-kotlin-stdlib-js-ir'], this['kotlin-wrappers-kotlin-react-js-ir'], this['kotlin-wrappers-kotlin-react-dom-js-ir']);
}
Chrys
09/07/2023, 1:57 PMChrys
09/07/2023, 2:52 PMimport react.create
import react.dom.client.createRoot
import react.dom.html.ReactHTML.div
import web.dom.document
fun main() {
val container = document.getElementById("root") ?: error("Couldn't find root container!")
val page = div.create {
+"Hello World from div"
}
createRoot(container).render(page)
}
but this one works and prints the message:
import web.dom.document
fun main() {
document.getElementById("root")?.innerHTML = "Hello, Kotlin/JS!"
}
Artem Kobzar
09/07/2023, 3:07 PMChrys
09/07/2023, 3:27 PMArtem Kobzar
09/07/2023, 3:28 PMChrys
09/07/2023, 3:34 PMChrys
09/07/2023, 7:21 PM