Skip to content

Commit 2a4281f

Browse files
committed
Fix issue #99: rename the nodeModulesDir property to nodeProjectDir, a more explicit and less confusing name.
1 parent e3df52f commit 2a4281f

File tree

11 files changed

+24
-18
lines changed

11 files changed

+24
-18
lines changed

CHANGELOG.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ that shows how to use this plugin version with Kotlin)
1414
* Fix some remaining input/output declaration issues (issue
1515
[#34](https://github.com/node-gradle/gradle-node-plugin/issues/34))
1616
* Gradle 5.6.4+ support (instead of Gradle 5.0.0+ before)
17-
* Node.js 10+ support
17+
* Node.js 10+ support (issue [#100](https://github.com/node-gradle/gradle-node-plugin/issues/100))
1818

1919
This version breaks backward compatibility. It should not visible for most Groovy DSL users since the Groovy DSL
2020
handles transparently most of these changes.
@@ -28,6 +28,9 @@ Here is what changed:
2828
Gradle. This makes this plugin fully compatible with lazy configuration (tasks will be configured only if they need to
2929
run and configuration properties are read only at runtime if needed and not at configuration time).
3030
* Thanks to the Kotlin rewrite, some properties now have a stronger typing.
31+
* `nodeModulesDir` option was renamed to `nodeProjectDir` (name more explicit and less confusing)
32+
(issue [#99](https://github.com/node-gradle/gradle-node-plugin/issues/99)). The former name still works but is
33+
deprecated.
3134
* Change the syntax to configure `nodeModulesOutputFilter` on `npmInstall` and `yarn` tasks. It also affects Groovy DSL
3235
users. Use now `nodeModulesOutputFilter { ... }` instead of `nodeModulesOutputFilter = { ... }`.
3336

docs/usage.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@ node {
218218
// Set the work directory for Yarn
219219
yarnWorkDir = file("${project.buildDir}/yarn")
220220
221-
// Set the work directory where node_modules should be located
222-
nodeModulesDir = file("${project.projectDir}")
221+
// Set the Node.js project directory (where package.json and node_modules are be located)
222+
nodeProjectDir = file("${project.projectDir}")
223223
}
224224
```
225225

src/main/kotlin/com/github/gradle/node/NodeExtension.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ open class NodeExtension(project: Project) {
1010
val workDir = project.objects.directoryProperty().convention(cacheDir.dir("nodejs"))
1111
val npmWorkDir = project.objects.directoryProperty().convention(cacheDir.dir("npm"))
1212
val yarnWorkDir = project.objects.directoryProperty().convention(cacheDir.dir("yarn"))
13-
val nodeModulesDir = project.objects.directoryProperty().convention(project.layout.projectDirectory)
13+
val nodeProjectDir = project.objects.directoryProperty().convention(project.layout.projectDirectory)
1414
val version = project.objects.property<String>().convention("12.16.2")
1515
val npmVersion = project.objects.property<String>().convention("")
1616
val yarnVersion = project.objects.property<String>().convention("")
@@ -21,6 +21,9 @@ open class NodeExtension(project: Project) {
2121
val yarnCommand = project.objects.property<String>().convention("yarn")
2222
val download = project.objects.property<Boolean>().convention(false)
2323

24+
@Deprecated("Deprecated in version 3.0, please use nodeProjectDir now")
25+
val nodeModulesDir = nodeProjectDir
26+
2427
init {
2528
distBaseUrl.set("https://nodejs.org/dist")
2629
}

src/main/kotlin/com/github/gradle/node/exec/ExecRunner.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ internal class ExecRunner {
3434

3535
private fun computeWorkingDir(project: Project, execConfiguration: ExecConfiguration): File? {
3636
val nodeExtension = NodeExtension[project]
37-
val workingDir = execConfiguration.workingDir ?: nodeExtension.nodeModulesDir.get().asFile
37+
val workingDir = execConfiguration.workingDir ?: nodeExtension.nodeProjectDir.get().asFile
3838
workingDir.mkdirs()
3939
return workingDir
4040
}

src/main/kotlin/com/github/gradle/node/npm/exec/NpmExecRunner.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,12 @@ internal class NpmExecRunner {
7171
npmExecConfiguration.commandExecComputer(variantComputer, nodeExtension, npmBinDirProvider)
7272
val npmScriptFileProvider =
7373
variantComputer.computeNpmScriptFile(nodeDirProvider, npmExecConfiguration.command)
74-
return zip(nodeExtension.download, nodeExtension.nodeModulesDir, executableProvider, nodeExecProvider,
74+
return zip(nodeExtension.download, nodeExtension.nodeProjectDir, executableProvider, nodeExecProvider,
7575
npmScriptFileProvider).map {
76-
val (download, nodeModulesDir, executable, nodeExec,
76+
val (download, nodeProjectDir, executable, nodeExec,
7777
npmScriptFile) = it
7878
if (download) {
79-
val localCommandScript = nodeModulesDir.dir("node_modules/npm/bin")
79+
val localCommandScript = nodeProjectDir.dir("node_modules/npm/bin")
8080
.file("${npmExecConfiguration.command}-cli.js").asFile
8181
if (localCommandScript.exists()) {
8282
return@map ExecutableAndScript(nodeExec, localCommandScript.absolutePath)

src/main/kotlin/com/github/gradle/node/npm/task/NpmInstallTask.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ open class NpmInstallTask : NpmTask() {
6161
}
6262

6363
private fun projectFileIfExists(name: String): Provider<File> {
64-
return nodeExtension.nodeModulesDir.map { it.file(name).asFile }
64+
return nodeExtension.nodeProjectDir.map { it.file(name).asFile }
6565
.flatMap { if (it.exists()) project.providers.provider { it } else project.providers.provider { null } }
6666
}
6767

@@ -70,15 +70,15 @@ open class NpmInstallTask : NpmTask() {
7070
@Suppress("unused")
7171
protected fun getNodeModulesDirectory(): Provider<Directory> {
7272
val filter = nodeModulesOutputFilter.orNull
73-
return if (filter == null) nodeExtension.nodeModulesDir.dir("node_modules")
73+
return if (filter == null) nodeExtension.nodeProjectDir.dir("node_modules")
7474
else project.providers.provider { null }
7575
}
7676

7777
@Optional
7878
@OutputFiles
7979
@Suppress("unused")
8080
protected fun getNodeModulesFiles(): Provider<FileTree> {
81-
val nodeModulesDirectoryProvider = nodeExtension.nodeModulesDir.dir("node_modules")
81+
val nodeModulesDirectoryProvider = nodeExtension.nodeProjectDir.dir("node_modules")
8282
return zip(nodeModulesDirectoryProvider, nodeModulesOutputFilter)
8383
.flatMap { (nodeModulesDirectory, nodeModulesOutputFilter) ->
8484
if (nodeModulesOutputFilter != null) {

src/main/kotlin/com/github/gradle/node/yarn/task/YarnInstallTask.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ open class YarnInstallTask : YarnTask() {
5050
}
5151

5252
private fun projectFileIfExists(name: String): Provider<File> {
53-
return nodeExtension.nodeModulesDir.map { it.file(name).asFile }
53+
return nodeExtension.nodeProjectDir.map { it.file(name).asFile }
5454
.flatMap { if (it.exists()) project.providers.provider { it } else project.providers.provider { null } }
5555
}
5656

@@ -59,15 +59,15 @@ open class YarnInstallTask : YarnTask() {
5959
@Suppress("unused")
6060
protected fun getNodeModulesDirectory(): Provider<Directory> {
6161
val filter = nodeModulesOutputFilter.orNull
62-
return if (filter == null) nodeExtension.nodeModulesDir.dir("node_modules")
62+
return if (filter == null) nodeExtension.nodeProjectDir.dir("node_modules")
6363
else project.providers.provider { null }
6464
}
6565

6666
@Optional
6767
@OutputFiles
6868
@Suppress("unused")
6969
protected fun getNodeModulesFiles(): Provider<FileTree> {
70-
val nodeModulesDirectoryProvider = nodeExtension.nodeModulesDir.dir("node_modules")
70+
val nodeModulesDirectoryProvider = nodeExtension.nodeProjectDir.dir("node_modules")
7171
return zip(nodeModulesDirectoryProvider, nodeModulesOutputFilter)
7272
.flatMap { (nodeModulesDirectory, nodeModulesOutputFilter) ->
7373
if (nodeModulesOutputFilter != null) {

src/test/groovy/com/github/gradle/node/NodeExtensionTest.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class NodeExtensionTest extends AbstractProjectTest {
1414
nodeExtension.npxCommand.get() == 'npx'
1515
nodeExtension.distBaseUrl.get() == 'https://nodejs.org/dist'
1616
nodeExtension.workDir.get() != null
17-
nodeExtension.nodeModulesDir.get() != null
17+
nodeExtension.nodeProjectDir.get() != null
1818
nodeExtension.version.get() == '12.16.2'
1919
!nodeExtension.download.get()
2020
nodeExtension.npmVersion.get() == ''

src/test/groovy/com/github/gradle/node/npm/task/NpmInstall_integTest.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class NpmInstall_integTest extends AbstractIntegTest {
8787
}
8888
8989
node {
90-
nodeModulesDir = file('subdirectory')
90+
nodeProjectDir = file('subdirectory')
9191
}
9292
''')
9393
writeFile('subdirectory/package.json', """{

src/test/groovy/com/github/gradle/node/yarn/task/YarnInstall_integTest.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class YarnInstall_integTest extends AbstractIntegTest {
8282
8383
node {
8484
yarnWorkDir = file('build/yarn')
85-
nodeModulesDir = file('subdirectory')
85+
nodeProjectDir = file('subdirectory')
8686
}
8787
''')
8888
writeFile('subdirectory/package.json', """{

src/test/resources/fixtures/kotlin/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ node {
1919
workDir.set(file("${project.buildDir}/nodejs"))
2020
npmWorkDir.set(file("${project.buildDir}/npm"))
2121
yarnWorkDir.set(file("${project.buildDir}/yarn"))
22-
nodeModulesDir.set(file("${project.projectDir}"))
22+
nodeProjectDir.set(file("${project.projectDir}"))
2323
}
2424

2525
val npmInstallTask = tasks.named<NpmInstallTask>("npmInstall") {

0 commit comments

Comments
 (0)