问题标签 [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 投票
2 回答
2678 浏览

intellij-idea - 错误:无法在 IntelliJ 中找到或加载主类 MainKt

我正在使用 IntelliJ。
我可以毫无问题地运行 Java 或 Kotlin 项目,但我无法构建 Kotlin-JS 项目
我有错误错误:无法找到或加载主类 MainKt

我的 IntelliJ 信息

IntelliJ IDEA 2018.2.6 (Community Edition)
Build #IC-182.5107.16, build on November 6, 2018
JRE: 1.8.0_152-release-1248-b22 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains sro
Linux 4.19.0-041900-通用

文件树 文件树

我的主文件只包含:

运行菜单
运行菜单

我尝试了 $KOTLIN_BUILDED$、$MODULE_WORKIN_DIR$ 选项并手动放置路径,但它没有改变任何东西。

当我用鼠标悬停 MainKt 时,会出现一个工具提示“Class 'MainKt' is in the default package”,以便 IntelliJ 看到该类。

我的项目设置似乎没问题

项目结构第 1 部分

项目结构第 2 部分

项目结构第 3 部分

我也试过

删除 *.iml 文件
重新安装 IntelliJ
重新添加主
Invalidate 缓存并重新启动

提前谢谢你

0 投票
1 回答
6202 浏览

kotlin - Kotlin 是如何专门编译的?

我试图了解 Kotlin 源代码在编译时所经历的过程。该文件指出

当以 JVM 为目标时,Kotlin 生成与 Java 兼容的字节码。当以 JavaScript 为目标时,Kotlin 转译为 ES5.1 并生成与包括 AMD 和 CommonJS 在内的模块系统兼容的代码。当以原生为目标时,Kotlin 将生成特定于平台的代码(通过 LLVM)。

我的理解是,当 Kotlin 以 JVM 为目标时,代码被编译/翻译成字节码,然后 JVM 将其解释(?)成机器码。这会是 JIT(及时)编译的一个例子吗?

当定位 javascript 时,使用了“transpiles”这个词。代码究竟被编译成什么,它在任何步骤中是否被进一步解释或编译?

以本机为目标时,代码是否直接编译为机器码?LLVM 采取了哪些步骤?

最后,这是否意味着 Kotlin 既是编译语言又是解释语言?

0 投票
1 回答
1266 浏览

gradle - 无法为 org.gradle.api.internal.tasks.DefaultSourceSetContainer 类型的 SourceSet 容器上的参数找到方法 srcDirs()

我正在尝试将我的 Kotlin 应用程序和一组 Kotlin 库编译为 JavaScript。我已经让它运行良好,但是当我尝试运行它时,它找不到kotlin.js. 为了解决这个问题,我尝试将我的更改build.gradle为更像GitHub 上的这个示例

在我的中,我定义了这样的源集:(有效但不输出kotlin.js

到这样的事情:(甚至不同步)

这给了我这个错误:

如何解决此错误?我知道一个问题是我不太了解 Groovy/Gradle,但我觉得我所做的至少应该同步......


这是相关代码和项目的链接:https ://github.com/BlueHuskyStudios/Decision-Cruncher/blob/SO/53576840/build.gradle

0 投票
2 回答
1153 浏览

kotlin - Kotlin 多平台项目上的 Js 模块构建失败

构建失败并显示错误消息:

./output.js 模块中的错误未找到:错误:无法解析“C:\Users\User\Documents\MultiPlatformTodo\web\web”中的“common”@ ./output.js 340:91-108

./output.js 中的错误未找到模块:错误:无法解析“C:\Users\User\Documents\MultiPlatformTodo\web\web”中的“kotlin”@ ./output.js 340:18-35

./output.js 模块中的错误未找到:错误:无法解析“C:\Users\User\Documents\MultiPlatformTodo\web\web”中的“kotlin-react”@ ./output.js 340:37-60

./output.js 中的错误模块未找到:错误:无法解析“C:\Users\User\Documents\MultiPlatformTodo\web\web”中的“kotlin-react-dom”@ ./output.js 340:62 -89

./output.js 中的错误未找到模块:错误:无法解析“C:\Users\User\Documents\MultiPlatformTodo\web\web”中的“kotlinx-coroutines-core”@ ./output.js 340:110 -144

./output.js 中的错误模块未找到:错误:无法解析“C:\Users\User\Documents\MultiPlatformTodo\web\web”中的“kotlinx-html-js”@ ./output.js 340:146 -172

FAILURE:构建失败并出现异常。

  • 出了什么问题:任务':web:webpack-bundle'执行失败。节点 webpack.js 失败(退出代码 = 2)

js模块build.gradle定义如下:

settings.gradle

这是common模块的内容:

0 投票
3 回答
607 浏览

gradle - Gradle 不会发出 kotlin.js

我正在尝试将我的 Kotlin 应用程序和一组 Kotlin 库编译为 JavaScript。我已经很好地工作了,但是当我尝试运行它时它找不到kotlin.js.

那么这里发生了什么?当我使用 IDEA(而不是 Gradle)编译时,它的输出kotlin.js很好。我试着让我的构建脚本更像我找到的一个例子,但这不会编译......


这是相关代码和项目的链接:https ://github.com/BlueHuskyStudios/Decision-Cruncher/blob/SO/q/53582651/1/build.gradle

0 投票
1 回答
453 浏览

kotlin - 在 Kotlin JS 中创建外部接口实例的惯用方式是什么

示例:定义了一些接口,@material-ui/core/createMuiTheme.d.ts例如 ThemeOptions 和ts2ktTheme没有构造函数。createMuiThemeThemeThemeOptionsThemeOptions

我创建了一个实现接口并实例化它的数据类。有时我需要使用动态实例,因为它允许第 3 方 js 代码对其进行修改。

假设我不想失去类型安全性并使用 JsObject/json()/js(),这种方法有什么好处吗?

0 投票
1 回答
395 浏览

gradle - 如何将 javascript 依赖项打包到 Kotlin JS 项目 JAR 中?

我正在为 Firebase Javascript SDK 制作一些 kotlin JS 包装器。因此,我使用 external 关键字和 @file:JsModule 注释创建了项目,如下所示:

我可以在我的 gradle 中将它发布到我的本地 maven 存储库:

如何添加 NPM 依赖项并确保它在生成的 JAR 文件中可用?

0 投票
1 回答
62 浏览

facebook - 如何在 Kotlin React 项目中访问 Facebook 的 javascript api?

我有一个项目使用“kotlinFrontend”来创建一个用 kotlin 编写的非常好的反应前端。我如何访问 facebook js sdk(通常使用脚本标签完成)

我的 HTML 模板上有这段代码,其中包含生成的捆绑包

在我的 kotlin react 代码中,我将如何访问 creatd FB obj?

0 投票
2 回答
5978 浏览

javascript - 如何将 Kotlin 编译成 TypeScript?

我的 Kotlin 项目中有一个 JavaScript 版本。如何生成完整的 TypeScript 代码而不是 JavaScript?

我使用 Maven;但如果你有 Gradle 解决方案,我很感兴趣。

0 投票
1 回答
323 浏览

kotlin - Kotlin:调用 JavaScript 方法的扩展运算符

我尝试为 JavaScript 库编写类型安全的包装器。我需要使用可变参数(例如method(args...))从 JavaScript 调用方法。Kotlin 的乐趣也应该适用于可变参数。因为 Kotlin 支持扩展运算符,所以我尝试使用它,但 Kotlin 不想要这个。

示例代码:

编辑:忘记在代码中编写扩展运算符“*”。由于展开运算符,编译器返回错误。

Kotlin 编译器返回错误“无法在动态调用中应用扩展运算符”。

任何想法如何实现这样的包装器,还是我需要任何解决方法?

谢谢你的帮助!