问题标签 [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.
reactjs - Kotlin JavaScript:用于 React 应用程序的捆绑包
我有一个我喜欢导出的 Kotlin JS 项目,以便它可以在非 Kotlin React 应用程序中使用。
我尝试过的事情(假设模块被称为exportedlib
):
- 将其导出为 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'
- 然后,我还将 kotlin.js 从
build/js/packages_imported/kotlin/1.3.72/kotlin.js
导入到 React 应用程序中。
然后我收到错误消息:
- 如上所述没有用,我还在 build.gradle 中添加了浏览器目标并将其导出为
gradlew browserDistribution
.
然后我从 npm 收到这些错误消息:
谁能帮我导出一个 Kotlin JS 库,以便它可以在 React 应用程序中使用?
这是我的 build.gradle:
更新
vanyochek的答案在使用 导出时对我有用./gradlew compileProductionExecutableKotlinJs
,但仅适用于具有实验性 IR 后端的 Kotlin 1.4 M2。
Kotlin 1.3 的任何解决方案将不胜感激。
javascript - Kotlin 类型具体化如何在 kotlin-js 上工作?
在 JVM 上,具体类型为类型擦除提供了一种解决方法。
为什么具体化在 kotlin-js 上以相同的方式工作?(即仅具有inline
功能)。
为什么不是所有类型都可以具体化?
kotlin - ReferenceError: 将 kotlin 编译到 JS 浏览器时未定义模块
我正在构建一个多平台的 Kotlin 项目。后端必须同时编译为JS Browser
和JVM
。我有 2 个平台的 2 个前端。问题是当我尝试运行代码时。gradle
我可以毫无问题地构建它,但是在浏览器中我得到了一个ReferenceError: module is not defined
在线venus.js:23643:1
. 我不确定问题是什么。我已经为项目(korio
和klogger
)添加了一些新的依赖项,但我确保我只使用两个平台上都可用的东西(我只使用来自 的WebSockets和Base64korio
,据我所知,这里WebSockets
提到的所有平台都支持) . 我现在被这个问题困扰了好几天。非常感谢任何帮助!谢谢!
这是我的build.gradle
:
这是创建的文件venus.js
。
更多背景信息:这是我正在进行的项目。我正在尝试添加一个外部虚拟内存,并且与内存的通信应该通过WebSockets
。
javascript - 在 Kotlin JS 中等待 fetch()?
我正在用 Kotlin JS 编写一个 WebGL 应用程序,因此我需要获取资源,例如 .obj 文件和着色器。我想通过 HTTP 请求来做到这一点,但我遇到了问题。
我目前正在尝试通过 JS 的fetch()
API 来做到这一点。问题是这显然是异步的,并且需要在渲染循环开始之前完成获取资源(即获取资源是初始化)。
我真的很难让它同步工作。也就是说,我的程序在获取着色器和 .obj 文件之前不应继续加载缓冲区和主绘制循环。我怎样才能让它在 Kotlin JS 中工作?是fetch()
不是这样做的正确方法?
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
. 我已经在这个问题上浪费了很多时间,而且我很确定这只是我遗漏的一些小东西(甚至可能很明显)。
重现问题的步骤:
- 下载项目(您将同时需要
venus
和VMB
) grunt
如果您没有,请下载并安装在您的机器上- 在
vmb
文件夹中双击mother.exe
并确保单击电源按钮(它仅适用于 Windows,抱歉) - 打开
venus
项目并使用(通常将项目识别为自动)InteliJ
构建它gradle
IntelliJ
gradle
- 构建完成后,在文件夹中打开一个
Powershell
或运行cmd
venus
grut dist
- 结果现在应该在
out
目录中。 - 您可能需要
XAMPP
在本地服务器上托管文件,以防万一CORS Error
- 当您打开页面时,转到
Simulator
选项卡,然后单击Assemble & Simulate from Editor
按钮。 - 您现在应该能够在控制台中看到错误。
任何帮助都非常感谢,因为我已经被这个问题困扰了好几天了。谢谢!
编辑:
进一步挖掘后,我注意到每当我调用suspend
函数时都会出现问题onclick
。
例如:我在中创建了一个函数Driver.kt
:
挂起的函数在哪里connectToMotherboard()
,每当按下按钮时我都会调用它。
HTML:
这给了我与标题中提到的相同的错误。为开发人员下载后Firefox
,我收到了以下消息:
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吗?
谢谢你的帮助。
kotlin-js - Kotlin Multiplatform 项目中的 javascript 代码使用什么代码覆盖工具?
我可以在 JVM 端使用 jacoco,但我可以在 Multiplatform 项目的 JS 端使用什么?
kotlin-js - 更改 Kotlin Javascript 输出目录
我刚刚开始使用 Kotlin 生成 Javascript,但找不到更改 Javascript 输出目录的方法。
这专门针对 nodejs 目标,并使用 Gradle 和 Kotlin 脚本。
Kotlin 文档中有一个针对浏览器目标的示例:
但似乎没有等价物kotlin.target.nodejs
ktor - 无法在 kotlin js 中使用 ktor 客户端发布请求
我正在尝试发出 http post 请求,但由于无法理解的原因而失败。
BlockquoteIllegalStateException {message_8yp7un$_0:“发送正文失败。内容具有类型:OwnerMapper 类,但应为 OutgoingContent。”,cause_th0jdv$_0:空,堆栈:“captureStack↵Exception↵RuntimeException↵IllegalSta…↵↵↵↵↵↵↵↵ ↵↵↵↵↵↵↵↵↵promiseReactionJob@[本机代码]”,名称:“IllegalStateException”}
添加序列化插件后,出现此错误:
“找不到类 OwnerMapper 的无参数序列化程序。对于泛型类,例如列表,请明确提供序列化程序。”
我遵循了官方示例,但无法使其运行。我正在使用 Kotlin/Js,以上错误来自浏览器。
kotlin - Kotiln/JS 中不可用的依赖项
我正在尝试在 Kotlin/JS 项目中使用名为KSVG的库。维护者已尝试设置 K/JS 支持,但无法正常工作。在 IntelliJ 中,我将以下 repo 和依赖项添加到我的build.gradle.kts
:
没有显示错误,IDE似乎可以正确加载依赖项,但它根本没有在我的代码库中公开。有没有办法查看为什么这种依赖会失败?库是否存在明显的问题,阻止它在 K/JS 中工作?