【发布时间】:2021-03-21 13:13:43
【问题描述】:
我有一个 AndrodiStudio KMM 项目,我想添加一个 JS 目标。
鉴于 JS 开发仅在 IntelliJ 中可用,我希望我必须在 IDEA 中打开项目添加一个“模块”——但我什至不知道该选择哪一个——它们似乎都没有成为一个“正确”的人:
-
在 Gradle 部分,有“Kotlin/JS for browser”和“Kotlin/JVM”。添加“Kotlin/JS”会破坏*整个项目的 Gradle 构建。“Kotlin/Multiplatform”听起来不像我想要,因为我已经有了“共享”模块(虽然它不包括 JS)
-
在 Kotlin 部分,有“KS | IDEA”。显然,我不想在基于 gradle.kts 的项目中添加基于“IDEA 构建系统”的东西。
所以我的问题是:
-
哪个模块模板是在“iosApp”和“androidApp”旁边添加“jsApp”(或 webApp)的最佳起点(在 AndroidStudio 或 Idea 中?)?
-
我需要添加什么到“shared/build.gradle.kts”来支持“jsMain”和“jsTest”文件夹?是否有不同/更好的起点(例如,Github 上涵盖所有平台的教程或最小的“helloWorld”示例)?
我的代码当前结构与Android Studio中的KMM项目模板1:1对应:https://github.com/stefanhaustein/komponents
*) 错误信息:
Error resolving plugin [id: 'org.jetbrains.kotlin.multiplatform', version: '1.4.31']
> Plugin request for plugin already on the classpath must not include a version
【问题讨论】:
-
还想知道为什么这个 Q 被否决了吗?我忽略了一些简单的事情吗?这是错误的子堆栈吗?
-
您好!基本上,您只需在您的
shared/build.gradle.kts中添加js()目标。请参阅this 文档页面。之后,将您的代码添加到/src/jsMain/kotlin。我同意文档可能不清楚添加新目标,值得在 Kotlin 的问题跟踪器上创建一个问题:kotl.in/issue -
谢谢,我通过手动复制 kotlin/js 模板的部分来让它工作...(您的链接没有描述需要进入
js()的内容。我已按照建议提出问题这里:youtrack.jetbrains.com/issue/KT-45612 和这里:github.com/Kotlin/kmm-sample/issues/55 - 将在此处添加我稍后需要做的答案。
标签: android-studio intellij-idea kotlin-multiplatform kotlin-js