diff options
Diffstat (limited to 'dokka-subprojects/plugin-base-frontend/build.gradle.kts')
-rw-r--r-- | dokka-subprojects/plugin-base-frontend/build.gradle.kts | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/dokka-subprojects/plugin-base-frontend/build.gradle.kts b/dokka-subprojects/plugin-base-frontend/build.gradle.kts new file mode 100644 index 00000000..459d748c --- /dev/null +++ b/dokka-subprojects/plugin-base-frontend/build.gradle.kts @@ -0,0 +1,52 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +import com.github.gradle.node.npm.task.NpmTask +import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs + +@Suppress("DSL_SCOPE_VIOLATION") // fixed in Gradle 8.1 https://github.com/gradle/gradle/pull/23639 +plugins { + id("dokkabuild.setup-html-frontend-files") + alias(libs.plugins.gradleNode) +} + +node { + version.set(libs.versions.node) + + // https://github.com/node-gradle/gradle-node-plugin/blob/3.5.1/docs/faq.md#is-this-plugin-compatible-with-centralized-repositories-declaration + download.set(true) + distBaseUrl.set(null as String?) // Strange cast to avoid overload ambiguity +} + +val distributionDirectory = layout.projectDirectory.dir("dist") + +val npmRunBuild by tasks.registering(NpmTask::class) { + dependsOn(tasks.npmInstall) + + npmCommand.set(parseSpaceSeparatedArgs("run build")) + + inputs.dir("src/main") + inputs.files( + "package.json", + "webpack.config.js", + ) + + outputs.dir(distributionDirectory) + outputs.cacheIf { true } +} + +configurations.dokkaHtmlFrontendFilesElements.configure { + outgoing { + artifact(distributionDirectory) { + builtBy(npmRunBuild) + } + } +} + +tasks.clean { + delete( + file("node_modules"), + file("dist"), + ) +} |