在 github 操作 CI 上构建 kotlinJs 应用程序

问题描述

我在设置 github 操作以构建我的 kotlinjs 项目时遇到了一些问题? 我有 js 运行时依赖:

implementation(npm("kotlinx-serialization-kotlinx-serialization-core-jslegacy","1.4.2-RC1"))

我得到错误

Module 'kotlinx-serialization-kotlinx-serialization-core-jsLegacy' not found 
> Task :remote:jsbrowserDevelopmentWebpack

我是否必须安装 npm(或某些源代码)才能在 github 操作上执行此操作?或者我需要使用一些 github 操作来在 github 操作上构建 kotlinjs 吗?这是我的 github 操作 yaml - js lib 已构建并作为资源复制到 jar 中 https://github.com/sentinelweb/cuer/blob/ab00c7a7cd969eafa72b0d28bc5ba5c5c3e099d3/.github/workflows/android.yml

下面是依赖树 - 删除 jsMain 依赖 kotlinx-serialization-kotlinx-serialization-core-jslegacy 会导致运行时/webpack 错误 - 所以我不确定在 kjs 运行时中创建这个依赖的位置 - 但它可能必须是通过使用其他一些库删除。只是删除它会破坏运行时/ webpack

    val commonMain by getting {
            dependencies {
                implementation(project(":shared"))
                implementation("org.jetbrains.kotlinx:kotlinx-datetime:$ver_kotlinx_datetime")
                implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:$ver_kotlinx_serialization_core")
                implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$ver_kotlinx_serialization_core")
                implementation("io.ktor:ktor-client-core:$ver_ktor")
                implementation("io.insert-koin:koin-core:$ver_koin")
            }
        }

        val jsMain by getting {
            dependencies {
                implementation("org.jetbrains.kotlinx:kotlinx-datetime-js:$ver_kotlinx_datetime")
                implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$ver_coroutines_core")
                implementation("org.jetbrains:kotlin-react:$ver_kotlin_react")
                implementation("org.jetbrains:kotlin-react-dom:$ver_kotlin_react")
                implementation("org.jetbrains:kotlin-styled:$ver_kotlin_styled")
                implementation(npm("react-youtube-lite","1.0.1"))
                implementation(npm("react-share","~4.2.1"))
                // todo shouldn't be need but breaks build runtime/webpack
                implementation(npm("kotlinx-serialization-kotlinx-serialization-core-jslegacy","1.4.2-RC1"))

            }
        }

解决方法

看起来这是由于 kotlin-datetime 更新到 kotlin-datetime 0.2.1 修复了旧版本的 kotlin-serialization 依赖

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...