frank
06/10/2020, 8:29 PMkotlin-react
libs manually in my html but it can't find module
variable in the React libs.
<script type="text/javascript" src="lib/kotlin/kotlin.js"> </script>
<script type="text/javascript" src="lib/kotlin/kotlinx-html-js.js"></script>
<script type="text/javascript" src="lib/kotlin/kotlin-wrappers-kotlin-react-jsLegacy.js"></script>
<script type="text/javascript" src="lib/kotlin/kotlin-wrappers-kotlin-react-dom-jsLegacy.js"></script>
<script type="text/javascript" src="js/webapp.js"></script>
ReferenceError: module is not defined kotlin-wrappers-kotlin-react-jsLegacy.js:845:1
ReferenceError: module is not defined kotlin-wrappers-kotlin-react-dom-jsLegacy.js:2472:1
My steps:
1. Copy js libs of Gradle local repo into my Project
2. Import js libs in my html
Suggestions how to import Kotlin/JS libs?turansky
06/10/2020, 8:49 PMturansky
06/10/2020, 8:51 PMcommonjs
module kind and couldn’t be used in browser without modificationfrank
06/10/2020, 9:06 PMReact wrappers useDo I have to import 'stdlib-common' in my html?module kind and couldn’t be used in browser without modificationcommonjs
turansky
06/10/2020, 9:11 PMcommonjs
- JS library module formatturansky
06/10/2020, 9:15 PMDo I have to import ‘stdlib-common’ in my html?You need configure DCE in your project After configuration you will find 1. App + Kotlin dependency (Single js file) in
build/js/packages
directory
2. App + Kotlin dependency + NPM dependencies (Single js file) in build/distributions
directoryfrank
06/10/2020, 9:17 PMturansky
06/10/2020, 9:20 PMturansky
06/10/2020, 9:21 PMturansky
06/10/2020, 9:22 PMJoost Klitsie
06/11/2020, 6:34 AMfrank
06/11/2020, 3:11 PM<body>
<div id="container" class="mainContainer">
// this div I fill it in kotlin
</div>
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<script> window.socket = io() </script>
<script type="text/javascript" src="js/webapp.js"></script> //Kotlin/JS file
</body>
Joost Klitsie
06/11/2020, 4:10 PM<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no">
<link rel="stylesheet" href="<https://fonts.googleapis.com/icon?family=Material+Icons>">
<link rel="stylesheet" href="<https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap>" />
<link rel="stylesheet" href="<https://fonts.googleapis.com/icon?family=Material+Icons>" />
<meta charset="UTF-8">
<title>KotlinJs</title>
</head>
<body style="background-color: #00c494;">
<div id="root"></div>
<script src="app.js"></script>
</body>
</html>
After this, you can import any library and add it to your project in the gradle script, making an App.kt file as an entry point and define your whole project from there. Kotlin javascript will generate the 1 app,js javascript file (or perhaps with a slightly different name) with all dependencies insideJoost Klitsie
06/11/2020, 4:11 PMJoost Klitsie
06/11/2020, 4:11 PMJoost Klitsie
06/11/2020, 4:12 PMimplementation("org.jetbrains:kotlin-react:16.13.0-pre.94-kotlin-1.3.70")
implementation("org.jetbrains:kotlin-react-dom:16.13.0-pre.94-kotlin-1.3.70")
implementation(npm("react", "16.13.1"))
implementation(npm("react-dom", "16.13.1"))
frank
06/11/2020, 4:21 PMturansky
06/11/2020, 5:10 PMpre.104
npm dependencies available transitively
implementation("org.jetbrains:kotlin-react:16.13.1-pre.107-kotlin-1.3.72")
implementation("org.jetbrains:kotlin-react-dom:16.13.1-pre.107-kotlin-1.3.72")
frank
06/11/2020, 6:49 PMturansky
06/11/2020, 7:24 PMumd
module kind) you will get JS file:
1. With included dependencies
2. Ready for run in browser, because umd
Additionally:
1. commonjs
- good format for modular JS libraries. React wrappers - not exception
2. In IR
Kotlin/JS libraries will not have JS part by defaultfrank
06/11/2020, 8:09 PMturansky
06/11/2020, 8:36 PMLast question.Don’t stop! 🙂
KT-TEST
- test project (reproduce some bug) like all in those repo
How did you deploy your lib project in local repo?
./gradlew publishToMavenLocal