File tree Expand file tree Collapse file tree 3 files changed +22
-5
lines changed
npm-publish-gradle-plugin/src/main/kotlin Expand file tree Collapse file tree 3 files changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ package dev.petuska.npm.publish
33import dev.petuska.npm.publish.config.configure
44import dev.petuska.npm.publish.config.configureNebulaNode
55import dev.petuska.npm.publish.extension.NpmPublishExtension
6+ import dev.petuska.npm.publish.task.NodeExecTask
67import dev.petuska.npm.publish.task.NpmAssembleTask
78import dev.petuska.npm.publish.task.NpmPackTask
89import dev.petuska.npm.publish.task.NpmPublishTask
@@ -46,10 +47,17 @@ public class NpmPublishPlugin : Plugin<Project> {
4647 }
4748
4849 afterEvaluate {
49- if (rootProject.tasks.names.contains(" kotlinNodeJsSetup" )) {
50- rootProject.tasks.named<NodeJsSetupTask >(" kotlinNodeJsSetup" ).map(NodeJsSetupTask ::destination)
50+ if (tasks.names.contains(" kotlinNodeJsSetup" )) {
51+ tasks.named<NodeJsSetupTask >(" kotlinNodeJsSetup" )
52+ .map(NodeJsSetupTask ::destination)
5153 .let (layout::dir)
5254 .let (extension.nodeHome::convention)
55+ // Hack to work around all KGP kotlinNodeJsSetup tasks sharing the same output dir.
56+ rootProject.allprojects { subProject ->
57+ tasks.withType(NodeExecTask ::class .java) {
58+ it.mustRunAfter(subProject.tasks.withType(NodeJsSetupTask ::class .java))
59+ }
60+ }
5361 }
5462 tasks.maybeCreate(" assemble" ).apply {
5563 group = " build"
Original file line number Diff line number Diff line change @@ -16,8 +16,18 @@ internal fun Project.configure(extension: NpmPublishExtension) {
1616 default = providers.environmentVariable(" NODE_HOME" )
1717 ).map(layout.projectDirectory::dir)
1818 )
19- extension.nodeBin.convention(extension.nodeHome.map { it.file(" bin/node" ) })
20- extension.npmBin.convention(extension.nodeHome.map { it.file(" bin/npm" ) })
19+ extension.nodeBin.convention(
20+ sysProjectEnvPropertyConvention(
21+ " nodeBin" ,
22+ extension.nodeHome.map { it.file(" bin/node" ).asFile.absolutePath }
23+ ).map(layout.projectDirectory::file)
24+ )
25+ extension.npmBin.convention(
26+ sysProjectEnvPropertyConvention(
27+ " npmBin" ,
28+ extension.nodeHome.map { it.file(" bin/npm" ).asFile.absolutePath }
29+ ).map(layout.projectDirectory::file)
30+ )
2131 extension.readme.convention(
2232 sysProjectEnvPropertyConvention(" readme" ).map(layout.projectDirectory::file)
2333 )
Original file line number Diff line number Diff line change @@ -52,7 +52,6 @@ internal fun Project.configure(target: KotlinJsTargetDsl): Unit = with(PluginLog
5252 }
5353
5454 null -> null
55- else -> error(" Unrecognised Kotlin/JS binary type: ${it::class .java.name} " )
5655 }
5756 }
5857 val compileKotlinTask = binary.flatMap<Kotlin2JsCompile >(JsIrBinary ::linkTask)
You can’t perform that action at this time.
0 commit comments