问题标签 [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 回答
474 浏览

reactjs - Kotlin JavaScript:用于 React 应用程序的捆绑包

我有一个我喜欢导出的 Kotlin JS 项目,以便它可以在非 Kotlin React 应用程序中使用。

我尝试过的事情(假设模块被称为exportedlib):

  1. 将其导出为 CommonJS 模块,使用gradlew compileKotlinJs.

然后我复制build/js/packages/exportedlib/kotlin/exportedlib.js到 React 应用程序并import exportedlib from './exportedlib'在 App.js 中导入它。

编译时,npm start我会收到以下错误消息:Module not found: Can't resolve 'kotlin'

  1. 然后,我还将 kotlin.js 从build/js/packages_imported/kotlin/1.3.72/kotlin.js导入到 React 应用程序中。

然后我收到错误消息:

  1. 如上所述没有用,我还在 build.gradle 中添加了浏览器目标并将其导出为gradlew browserDistribution.

然后我从 npm 收到这些错误消息:

谁能帮我导出一个 Kotlin JS 库,以便它可以在 React 应用程序中使用?

这是我的 build.gradle:

更新

vanyochek的答案在使用 导出时对我有用./gradlew compileProductionExecutableKotlinJs,但仅适用于具有实验性 IR 后端的 Kotlin 1.4 M2。

Kotlin 1.3 的任何解决方案将不胜感激。

0 投票
1 回答
95 浏览

javascript - Kotlin 类型具体化如何在 kotlin-js 上工作?

在 JVM 上,具体类型为类型擦除提供了一种解决方法。

为什么具体化在 kotlin-js 上以相同的方式工作?(即仅具有inline功能)。

为什么不是所有类型都可以具体化?

0 投票
0 回答
240 浏览

kotlin - ReferenceError: 将 kotlin 编译到 JS 浏览器时未定义模块

我正在构建一个多平台的 Kotlin 项目。后端必须同时编译为JS BrowserJVM。我有 2 个平台的 2 个前端。问题是当我尝试运行代码时。gradle我可以毫无问题地构建它,但是在浏览器中我得到了一个ReferenceError: module is not defined在线venus.js:23643:1. 我不确定问题是什么。我已经为项目(korioklogger)添加了一些新的依赖项,但我确保我只使用两个平台上都可用的东西(我只使用来自 的WebSocketsBase64korio,据我所知,这里WebSockets提到的所有平台都支持) . 我现在被这个问题困扰了好几天。非常感谢任何帮助!谢谢!

这是我的build.gradle

这是创建的文件venus.js

更多背景信息:是我正在进行的项目。我正在尝试添加一个外部虚拟内存,并且与内存的通信应该通过WebSockets

0 投票
2 回答
888 浏览

javascript - 在 Kotlin JS 中等待 fetch()?

我正在用 Kotlin JS 编写一个 WebGL 应用程序,因此我需要获取资源,例如 .obj 文件和着色器。我想通过 HTTP 请求来做到这一点,但我遇到了问题。

我目前正在尝试通过 JS 的fetch()API 来做到这一点。问题是这显然是异步的,并且需要在渲染循环开始之前完成获取资源(即获取资源是初始化)。

我真的很难让它同步工作。也就是说,我的程序在获取着色器和 .obj 文件之前不应继续加载缓冲区和主绘制循环。我怎样才能让它在 Kotlin JS 中工作?是fetch()不是这样做的正确方法?

0 投票
1 回答
191 浏览

kotlin - Uncaught TypeError: this.resultContinuation_0 is undefined 当试图在 Kotlin JS 浏览器 onclick 中运行挂起函数时

我正在开发一个多平台的 RISC-V 模拟器Kotlin,我已经被一个问题困住了一个多星期。我已经尝试了所有可以在网上找到的东西,但我没有运气。

给你一点背景信息:我正在尝试将这个项目(在这里你可以下载我的代码)绑定到VMB(虚拟主板,在这里你可以通过WebSockets. 我已经完成了通信部分并在JVM分支上对其进行了测试(我还制作了另一个小型 Kotlin JS项目,其中只有通信部分的代码,它工作正常,但由于某种原因,当我把所有东西放在一起时,它只是不起作用)。它构建没有任何错误,甚至可以正常工作(扩展),直到我尝试连接到VMB,然后我在浏览器的控制台中收到错误消息Uncaught TypeError: this.resultContinuation_0 is undefined. 我已经在这个问题上浪费了很多时间,而且我很确定这只是我遗漏的一些小东西(甚至可能很明显)。

重现问题的步骤:

  1. 下载项目(您将同时需要venusVMB
  2. grunt如果您没有,请下载并安装在您的机器上
  3. vmb文件夹中双击mother.exe并确保单击电源按钮(它仅适用于 Windows,抱歉)
  4. 打开venus项目并使用(通常将项目识别为自动)InteliJ构建它gradleIntelliJgradle
  5. 构建完成后,在文件夹中打开一个Powershell或运行cmdvenusgrut dist
  6. 结果现在应该在out目录中。
  7. 您可能需要XAMPP在本地服务器上托管文件,以防万一CORS Error
  8. 当您打开页面时,转到Simulator选项卡,然后单击Assemble & Simulate from Editor按钮。
  9. 您现在应该能够在控制台中看到错误。

任何帮助都非常感谢,因为我已经被这个问题困扰了好几天了。谢谢!

编辑:

进一步挖掘后,我注意到每当我调用suspend函数时都会出现问题onclick

例如:我在中创建了一个函数Driver.kt

挂起的函数在哪里connectToMotherboard(),每当按下按钮时我都会调用它。

HTML:

这给了我与标题中提到的相同的错误。为开发人员下载后Firefox,我收到了以下消息:

0 投票
1 回答
471 浏览

kotlin-js - 如何使用 Kotlin JS 中的 JSONObject

我是 Kotlin JS 的新手。

我正在尝试将我的 android 应用程序的业务逻辑移植到 Kotlin JS。

我的应用程序使用 org.json.JsonObject 类进行自定义序列化。我不能将 KotlinX 序列化与注释一起使用,因为我的类是内联的并且不支持这些注释。

Kotlin-JS 项目使用 Gradle Kotlin DSL。我将依赖项指定为“实现(“org.json:json:20190722”)”。对于库中的任何内容,编译器都会抛出错误“未解析的引用”。我怀疑以这种方式链接到 Kotlin-JS 的 java 库是不合法的。这是真的?

在我的应用程序中实现 JsonObject 的最佳方法是什么?我需要将源代码复制到我的项目中并自己编译成JS吗?

谢谢你的帮助。

0 投票
1 回答
181 浏览

kotlin-js - Kotlin Multiplatform 项目中的 javascript 代码使用什么代码覆盖工具?

我可以在 JVM 端使用 jacoco,但我可以在 Multiplatform 项目的 JS 端使用什么?

0 投票
2 回答
280 浏览

kotlin-js - 更改 Kotlin Javascript 输出目录

我刚刚开始使用 Kotlin 生成 Javascript,但找不到更改 Javascript 输出目录的方法。

这专门针对 nodejs 目标,并使用 Gradle 和 Kotlin 脚本。

Kotlin 文档中有一个针对浏览器目标的示例:

但似乎没有等价物kotlin.target.nodejs

0 投票
2 回答
2351 浏览

ktor - 无法在 kotlin js 中使用 ktor 客户端发布请求

我正在尝试发出 http post 请求,但由于无法理解的原因而失败。

BlockquoteIllegalStateException {message_8yp7un$_0:“发送正文失败。内容具有类型:OwnerMapper 类,但应为 OutgoingContent。”,cause_th0jdv$_0:空,堆栈:“captureStack↵Exception↵RuntimeException↵IllegalSta…↵↵↵↵↵↵↵↵ ↵↵↵↵↵↵↵↵↵promiseReactionJob@[本机代码]”,名称:“IllegalStateException”}

添加序列化插件后,出现此错误:

“找不到类 OwnerMapper 的无参数序列化程序。对于泛型类,例如列表,请明确提供序列化程序。”

我遵循了官方示例,但无法使其运行。我正在使用 Kotlin/Js,以上错误来自浏览器。

0 投票
1 回答
253 浏览

kotlin - Kotiln/JS 中不可用的依赖项

我正在尝试在 Kotlin/JS 项目中使用名为KSVG的库。维护者已尝试设置 K/JS 支持,但无法正常工作。在 IntelliJ 中,我将以下 repo 和依赖项添加到我的build.gradle.kts

没有显示错误,IDE似乎可以正确加载依赖项,但它根本没有在我的代码库中公开。有没有办法查看为什么这种依赖会失败?库是否存在明显的问题,阻止它在 K/JS 中工作?