Kotlin JS错误Ktor客户端解决了“ fs”

时间:2020-03-11 18:23:44

标签: kotlin ktor kotlin-js

我正在尝试针对浏览器构建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")),但没有任何区别。

有人知道吗?

谢谢

1 个答案:

答案 0 :(得分:0)

抱歉,没有提供足够的有关gradle File和Project的信息。通过将serializationVersion降级为0.14.0,我能够解决此问题。由ktor Client支持。

相关问题