我正在尝试编写一个应用程序来对 kotlin React 应用程序进行服务器端渲染。这是该应用程序的示例版本。写给
renderBrowserApp/src/jsMain/kotlin/horcrux/browserapp/render/App.kt
package horcrux.browserapp.render
import react.create
import react.dom.html.ReactHTML.p
import react.dom.server.rawRenderToString
fun main() {
println(rawRenderToString(p.create { +"hello" }))
}
这是该子项目的
build.gradle.kts
。我正在使用 Gradle 版本 8.0.2 和 Kotlin 多平台版本 1.9.21。
plugins {
kotlin("multiplatform")
}
repositories {
mavenCentral()
}
val kotlinWrappersVersion: String = "1.0.0-pre.736"
kotlin {
js {
nodejs()
binaries.executable()
}
sourceSets {
jsMain.dependencies {
implementation("org.jetbrains.kotlin-wrappers:kotlin-react")
implementation("org.jetbrains.kotlin-wrappers:kotlin-react-dom")
implementation(project.dependencies.enforcedPlatform("org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:$kotlinWrappersVersion"))
}
}
}
当我运行
./gradlew renderBrowserApp:build
时,我希望看到 Javascript 文件作为工件出现在 renderBrowserApp/build/dist
中。相反,甚至还没有创建发行总监。我配置有什么错误吗? Kotlin 多平台的 Nodejs 目标上的文档很少。
这个设置对我来说看起来不错。
查看
build/compileSync/js/main/productionExecutable/kotlin
以获取要在 Node 中运行的 JS 文件。
无论好坏,如果您想使用 Kotlin 多平台 Gradle 插件做更多超出基础知识的事情,您将需要准备好深入研究其代码以了解发生了什么。