问题标签 [kotlin-js]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kotlin - 使用 kotlinx.html 通过迭代构建 HTML
我正在尝试通过迭代一个集合来使用 kotlinx.html 构建一个 HTML 列表,对于集合中的每个元素,我想在 UL 标记内构建一个 LI 标记。
这就是我正在尝试的:
但是我在浏览器控制台中收到错误:
Uncaught (in promise) TypeError:closure$products.iterator is not a function
如何迭代集合并在 UL 标签内为传递给函数的每个产品添加 LI 标签?
javascript - 如何从常规 Javascript 调用 Kotlin/JS 函数?
我一直在使用 Kotlin 开发一个小型 2D 模拟软件,并且我正在使用 Kotlin 多平台项目使其在 JVM 和浏览器上运行。到目前为止,它运作良好。
但是,当我想从常规 Javascript 调用 Kotlin/JS 中定义的函数时,我遇到了问题。
为了使我的应用程序在浏览器中运行,我在运行“build”Gradle 任务后包含了位于“build/distributions”文件夹下的大 JS 文件。当我的 Kotlin/JS 应用程序包含一个main()函数时,当打开引用 JS 文件的 HTML 页面时会自动调用这个函数,它运行良好。
但是,如果我删除了 main 函数,而是创建了一个应该手动调用的start()函数(例如,在单击按钮之后),它就不起作用:它说函数start()没有定义即使它是在 Kotlin 代码中声明的。
打开生成的 JS 文件后,似乎确实没有start()函数。看起来所有函数的名称都被缩小了。
我尝试添加@JsName,但它没有改变任何东西。
所以我想我做错了什么,但我真的不知道是什么以及如何让它工作。
注意:我使用的是 Kotlin 1.3.70
编辑:这是我的 build.gradle.kts 的核心:
gradle - 如何使用由 kotlin multiplatform 创建的 Javascript 工件
我正在为 jvm 和 js 创建一个 kotlin mutliplatform 项目。我的 build.gradle.kts 看起来像这样:
当我构建项目时,会创建一个 common.js,其内容如下所示:
现在我在项目外部创建了一个简单的 javascript 文件并尝试使用创建的代码(就像您在教程中看到的那样 - 他们创建了一个使用 mutliplatform 项目作为依赖项的应用程序)。这似乎是不可能的,因为创建的代码没有导出任何功能等。我希望能够做类似的事情
您是否知道如何构建项目以完成这些事情?
debugging - 如何让浏览器识别在 Kotlin/Js 的一些外部 Kotlin 库中设置的断点?
目前,我正在使用这个 Kotlin/Js 版本:
我已经配置了源映射生成:
然后,我使用 Intellij 启动 Chrome--remote-debugging-port
并附加到浏览器,或者使用JetBrains IDE Support
浏览器扩展。
我可以在自己的 Kotlin 代码中成功设置断点,但浏览器会忽略我在外部 Kotlin 模块中设置的所有其他断点。例如,我想在rEnhancer
下面调试函数kotlin-redux/redux/Helpers.kt
:
浏览器会忽略所有这些。我宁愿认为这是因为没有任何东西为这些库生成源映射。
为了能够调试,作为临时解决方案,我在我的项目中嵌入了一些代码,但这是一个糟糕的想法。
那么,我能做些什么来调试一些外国代码呢?
firebase - firebase 客户端为 firebase 功能上传哪些文件?
firebase 客户端上传 firebase 功能需要什么?我所能确定的是,它从我的lib
目录中获取我的文件,对它们执行一些操作,然后上传所有内容。它也需要我的依赖吗?这是如何运作的?
我问的原因是我正在尝试将 firebase 函数与 kotlin-js 一起使用。Kotlin-js 原生集成了 webpack,可以集成 npm 依赖。我可以给firebase一个集成了所有依赖项的单个文件,但firebase似乎没有上传依赖项。似乎 package.json 正在被发送或其他东西。
如果我编译为 kotlin-js,我应该将我的代码/依赖项的哪些部分放入要上传的 lib 文件夹中?
kotlin - 使用时间管理库构建 kotlin 多平台(js、jvm)
我想在后端(jvm)和前端(js)上使用相同的算法。该算法需要一些日期/时间操作,因此将依赖于一些外部库。对于 js,jvm 有类似“moment”的东西,有标准的“java.time”。
我想出唯一的方法是使用“平台特定声明”并基本上在java中实现js库的api或其他方式(至少我正在使用的部分)。这是唯一的方法还是有更便宜/更智能的方法?或者最便宜的方法是在 nodejs 中编写另一个微服务?
kotlin-multiplatform - 如何将 MessageEventInit 与 window.addEventListener 一起使用
我正在尝试使用 kotlin-js 注册一个网络消息频道,但无法确定如何访问该MessageEventInit
类型。
https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.dom/-message-event-init/index.html
该window.addEventListener
方法只公开一个泛型Event
类型
到目前为止,这是我想出的,但是很难构建该项目。
我的主要目标是将此文件转换为 Kotlin/JS 并将其与此 kotlin android 项目结合起来
kotlin-js - dceTask keep 不保留定义的类
我正在构建一个 Kotlin/JS 项目,该项目将用作 Web 应用程序的库。kotlin 插件最近启用了 DCE 并提供了一个 keep 指令,但它没有保留我指定的类。
这是我的类定义的顶部:
完整项目在这里:
kotlin - Kotlin JS 错误 Ktor 客户端解析“fs”
我正在尝试构建一个针对浏览器的 Kotlin JS 应用程序。
我不想使用 Ktor 客户端、Kotlin 序列化和协程请求 REST API。我的build.gradle.kts
样子是这样的:
当我尝试通过调用来运行应用程序./gradlew run
时,控制台上出现以下错误:
我已经尝试删除implementation(npm("fs", "0.0.1-security"))
,但它没有任何区别。
有人有线索吗?
谢谢