【问题标题】:Using npm dependencies in Kotlin/Js在 Kotlin/Js 中使用 npm 依赖项
【发布时间】:2022-10-14 22:43:10
【问题描述】:

我需要在 Kotlin/JS 中生成 uuid,并希望从 Kotlin/JS 调用 uuid.v4()。我已经浏览了文档 - https://kotlinlang.org/docs/using-packages-from-npm.htmlhttps://kotlinlang.org/docs/js-modules.html 但不知何故无法弄清楚如何调用。

我做的是这个——

  1. 在 JsMain 源集中包含 uuid 作为 npm 依赖项
    val jsMain by getting {
        dependencies {
            implementation(npm("uuid", "9.0.0"))
        }
    }
    
    1. 在 JsMain 中,创建了一个包含此内容的 uuid.kt 文件
    @JsModule("uuid")
    @JsNonModule
    external fun v4(options: Any?, buf: Any?, offset: Any?): String
    
    1. 在 Kotlin/Js 代码中,调用 v4(null, null, null) 不起作用。

    我在控制台中收到此错误-

    Uncaught ReferenceError: v4 is not defined
    

【问题讨论】:

  • 您需要使用@JsModule("uuid") 提及该模块
  • 是的,我忘了在问题中提到我还添加了@JsModule(“uuid”),编辑了问题......

标签: javascript kotlin kotlin-multiplatform kotlin-js kotlin-js-interop


【解决方案1】:

这就是它的工作方式 -

  1. 在 build.gradle.kts 中的 JsMain sourceSet 中将 uuid 声明为 nmp 依赖项
    val jsMain by getting {
        dependencies {
            implementation(npm("uuid", "9.0.0"))
        }
    }
    
    1. 在 JsMain 中,创建一个包含内容的 uuid.kt 文件
    @JsModule("uuid")
    @JsNonModule
    external val uuid: dynamic
    
    1. 来自 Kotlin/Js,像这样使用它
    uuid.v4()
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    相关资源
    最近更新 更多