blob: a4e0bbc04d402ac0d7225f56b22d65955f697b54 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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("org.jetbrains.conventions.dokka-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"),
)
}
|