问题标签 [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.

0 投票
1 回答
220 浏览

kotlin - 使用 kotlinx.html 通过迭代构建 HTML

我正在尝试通过迭代一个集合来使用 kotlinx.html 构建一个 HTML 列表,对于集合中的每个元素,我想在 UL 标记内构建一个 LI 标记。

这就是我正在尝试的:

但是我在浏览器控制台中收到错误:

Uncaught (in promise) TypeError:closure$products.iterator is not a function

如何迭代集合并在 UL 标签内为传递给函数的每个产品添加 LI 标签?

0 投票
1 回答
1186 浏览

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 的核心:

0 投票
1 回答
601 浏览

gradle - 如何使用由 kotlin multiplatform 创建的 Javascript 工件

我正在为 jvm 和 js 创建一个 kotlin mutliplatform 项目。我的 build.gradle.kts 看起来像这样:

当我构建项目时,会创建一个 common.js,其内容如下所示:

现在我在项目外部创建了一个简单的 javascript 文件并尝试使用创建的代码(就像您在教程中看到的那样 - 他们创建了一个使用 mutliplatform 项目作为依赖项的应用程序)。这似乎是不可能的,因为创建的代码没有导出任何功能等。我希望能够做类似的事情

您是否知道如何构建项目以完成这些事情?

0 投票
0 回答
162 浏览

debugging - 如何让浏览器识别在 Kotlin/Js 的一些外部 Kotlin 库中设置的断点?

目前,我正在使用这个 Kotlin/Js 版本:

我已经配置了源映射生成:

然后,我使用 Intellij 启动 Chrome--remote-debugging-port并附加到浏览器,或者使用JetBrains IDE Support浏览器扩展。

我可以在自己的 Kotlin 代码中成功设置断点,但浏览器会忽略我在外部 Kotlin 模块中设置的所有其他断点。例如,我想在rEnhancer下面调试函数kotlin-redux/redux/Helpers.kt

Intellij 中设置的断点样本

浏览器会忽略所有这些。我宁愿认为这是因为没有任何东西为这些库生成源映射。

为了能够调试,作为临时解决方案,我在我的项目中嵌入了一些代码,但这是一个糟糕的想法。

那么,我能做些什么来调试一些外国代码呢?

0 投票
1 回答
82 浏览

firebase - firebase 客户端为 firebase 功能上传哪些文件?

firebase 客户端上传 firebase 功能需要什么?我所能确定的是,它从我的lib目录中获取我的文件,对它们执行一些操作,然后上传所有内容。它也需要我的依赖吗?这是如何运作的?

我问的原因是我正在尝试将 firebase 函数与 kotlin-js 一起使用。Kotlin-js 原生集成了 webpack,可以集成 npm 依赖。我可以给firebase一个集成了所有依赖项的单个文件,但firebase似乎没有上传依赖项。似乎 package.json 正在被发送或其他东西。

如果我编译为 kotlin-js,我应该将我的代码/依赖项的哪些部分放入要上传的 lib 文件夹中?

0 投票
1 回答
102 浏览

kotlin - 使用时间管理库构建 kotlin 多平台(js、jvm)

我想在后端(jvm)和前端(js)上使用相同的算法。该算法需要一些日期/时间操作,因此将依赖于一些外部库。对于 js,jvm 有类似“moment”的东西,有标准的“java.time”。

我想出唯一的方法是使用“平台特定声明”并基本上在java中实现js库的api或其他方式(至少我正在使用的部分)。这是唯一的方法还是有更便宜/更智能的方法?或者最便宜的方法是在 nodejs 中编写另一个微服务?

0 投票
1 回答
246 浏览

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类型

https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.dom.events/-event-target/add-event-listener.html

到目前为止,这是我想出的,但是很难构建该项目。

我的主要目标是将此文件转换为 Kotlin/JS 并将其与此 kotlin android 项目结合起来

https://github.com/darran-kelinske-fivestars/cordova-alternative-pattern/blob/master/app/src/main/assets/js/index.js

0 投票
1 回答
1474 浏览

kotlin-js - 构建 kotlin/js 项目时出现异常:error package.json: Name contains非法字符

尝试构建 kotlin/js 项目并获得以下异常:

项目在这里:

https://github.com/darran-kelinske-fivestars/cordova-alternative-pattern/tree/kotlin_multiplatform/js

完整输出:

0 投票
1 回答
192 浏览

kotlin-js - dceTask keep 不保留定义的类

我正在构建一个 Kotlin/JS 项目,该项目将用作 Web 应用程序的库。kotlin 插件最近启用了 DCE 并提供了一个 keep 指令,但它没有保留我指定的类。

这是我的类定义的顶部:

完整项目在这里:

https://github.com/darran-kelinske-fivestars/cordova-alternative-pattern/blob/master/BluetoothSerialJs/build.gradle#L14

0 投票
1 回答
244 浏览

kotlin - Kotlin JS 错误 Ktor 客户端解析“fs”

我正在尝试构建一个针对浏览器的 Kotlin JS 应用程序。

我不想使用 Ktor 客户端、Kotlin 序列化和协程请求 REST API。我的build.gradle.kts样子是这样的:

当我尝试通过调用来运行应用程序./gradlew run时,控制台上出现以下错误:

我已经尝试删除implementation(npm("fs", "0.0.1-security")),但它没有任何区别。

有人有线索吗?

谢谢