Kotlin Gradle Multiplatform 不产生 Nodejs 神器

问题描述 投票:0回答:1

我正在尝试编写一个应用程序来对 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 目标上的文档很少。

node.js kotlin gradle kotlin-multiplatform
1个回答
0
投票

这个设置对我来说看起来不错。

查看

build/compileSync/js/main/productionExecutable/kotlin
以获取要在 Node 中运行的 JS 文件。

无论好坏,如果您想使用 Kotlin 多平台 Gradle 插件做更多超出基础知识的事情,您将需要准备好深入研究其代码以了解发生了什么。

© www.soinside.com 2019 - 2024. All rights reserved.