我正在尝试构建一个针对浏览器的 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"))
,但它没有任何区别。
有人有线索吗?
谢谢