0

我正在尝试构建一个针对浏览器的 Kotlin JS 应用程序。

我不想使用 Ktor 客户端、Kotlin 序列化和协程请求 REST API。我的build.gradle.kts样子是这样的:

dependencies {
    val serializationVersion = "0.20.0"
    val ktorVersion = "1.3.1"
    implementation(kotlin("stdlib-js"))
    implementation("io.ktor:ktor-client-core:$ktorVersion")
    implementation("io.ktor:ktor-client-js:$ktorVersion")
    implementation("io.ktor:ktor-client-serialization-js:$ktorVersion")
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-js:$serializationVersion")
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serializationVersion")
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-js:1.3.3")
    implementation(npm("abort-controller", "3.0.0"))
    implementation(npm("bufferutil", "4.0.1"))
    implementation(npm("utf-8-validate", "5.0.2"))
    implementation(npm("fs", "0.0.1-security"))
    implementation(npm("text-encoding", "0.7.0"))
}

kotlin.target.browser {
    dceTask {
        dceOptions {
            keep("ktor-ktor-io.\$\$importsForInline\$\$.ktor-ktor-io.io.ktor.utils.io")
        }
    }
}

当我尝试通过调用来运行应用程序./gradlew run时,控制台上出现以下错误:

WARNING in /PATH_TO_PROJECT_DIRECTORY/build/js/packages_imported/ktor-ktor-client-core/1.3.1/ktor-ktor-client-core.js 16700:13-32
Critical dependency: the request of a dependency is an expression
 @ ./kotlin/MyProject.js
 @ multi ./kotlin/MyProject.js

ERROR in /PATH_TO_PROJECT_DIRECTORY/build/js/node_modules/node-gyp-build/index.js
Module not found: Error: Can't resolve 'fs' in '/PATH_TO_PROJECT_DIRECTORY/build/js/node_modules/node-gyp-build'
 @ /PATH_TO_PROJECT_DIRECTORY/build/js/node_modules/node-gyp-build/index.js 1:9-22
 @ /PATH_TO_PROJECT_DIRECTORY/build/js/node_modules/utf-8-validate/index.js
 @ /PATH_TO_PROJECT_DIRECTORY/build/js/node_modules/ws/lib/Validation.js
 @ /PATH_TO_PROJECT_DIRECTORY/build/js/node_modules/ws/lib/Receiver.js
 @ /PATH_TO_PROJECT_DIRECTORY/build/js/node_modules/ws/index.js
 @ /PATH_TO_PROJECT_DIRECTORY/build/js/packages_imported/ktor-ktor-client-core/1.3.1/ktor-ktor-client-core.js
 @ ./kotlin/MyProject.js
 @ multi ./kotlin/MyProject.js

我已经尝试删除implementation(npm("fs", "0.0.1-security")),但它没有任何区别。

有人有线索吗?

谢谢

4

1 回答 1

0

抱歉,请提供足够的 gradle 文件和项目信息。我能够通过将 serializationVersion 降级为0.14.0. ktor 客户端支持。

于 2020-03-12T20:09:46.233 回答