首页 > 解决方案 > Kotlin js 没有从 gradle 实现中获取依赖项(构建文件中的 npm 部分

问题描述

我有一个 Kotlin JS 项目,我正在尝试通过 Gradle 添加一些 npm 依赖项。我的理解是我必须将 npm deps 添加到此源集的依赖项中,如下所示:

plugins {
  id("org.jetbrains.kotlin.js") version "1.3.61"
}

repositories {
    mavenCentral()
    jcenter()
}

kotlin {

    sourceSets["main"].dependencies {
        implementation(npm("react", "16.8.3"))
        implementation(npm("@jetbrains/kotlin-css", "1.0.0-pre.89"))
        implementation(npm("@jetbrains/kotlin-css-js", "1.0.0-pre.89"))
        implementation(npm("@jetbrains/kotlin-styled", "1.0.0-pre.89"))
        implementation(npm("react-google-charts"))

    }
    target {

       browser {

       }
    }
}

dependencies {
    implementation(kotlin("stdlib-js"))
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-js:1.3.2")
}

}

但是我的源代码无法编译,例如所有这些导入都无法编译:

import kotlinx.html.js.onClickFunction
import react.RBuilder
import react.dom.button
import react.dom.div

我可以看到所有 npm 模块都已下载到 build/js/node_modules

我错过了什么?

标签: gradlekotlingradle-kotlin-dslkotlin-js

解决方案


您应该使用 kotlin 包装器进行反应:

    sourceSets["main"].dependencies {
        implementation(npm("@jetbrains/kotlin-react", "16.9.0-pre.89"))
        implementation(npm("@jetbrains/kotlin-react-dom", "16.9.0-pre.89"))


        implementation(npm("@jetbrains/kotlin-css", "1.0.0-pre.89"))
        implementation(npm("@jetbrains/kotlin-css-js", "1.0.0-pre.89"))
        implementation(npm("@jetbrains/kotlin-styled", "1.0.0-pre.89"))
        implementation(npm("react-google-charts"))

        implementation("org.jetbrains.kotlinx:kotlinx-html-js:0.6.12")

    }

推荐阅读