Skip to content

Commit 0d8812f

Browse files
authored
Merge pull request #392 from vhiairrassary/vhiairrassary/sync-npm-lock-file
Sync NPM lock file
2 parents 5c36f19 + 5da934b commit 0d8812f

File tree

1 file changed

+39
-8
lines changed

1 file changed

+39
-8
lines changed

sbt-scalajs-bundler/src/main/scala/scalajsbundler/ExternalCommand.scala

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,51 @@ object Yarn extends ExternalCommand("yarn")
3434

3535
object ExternalCommand {
3636
private val yarnOptions = List("--non-interactive", "--mutex", "network")
37-
private def syncYarnLockfile(baseDir: File, installDir: File, logger: Logger)(
38-
yarnCommand: => Unit): Unit = {
39-
val sourceLockFile = baseDir / "yarn.lock"
40-
val targetLockFile = installDir / "yarn.lock"
37+
38+
private def syncLockfile(
39+
lockFileName: String,
40+
baseDir: File,
41+
installDir: File,
42+
logger: Logger
43+
)(
44+
command: => Unit
45+
): Unit = {
46+
val sourceLockFile = baseDir / lockFileName
47+
val targetLockFile = installDir / lockFileName
48+
4149
if (sourceLockFile.exists()) {
4250
logger.info("Using lockfile " + sourceLockFile)
4351
IO.copyFile(sourceLockFile, targetLockFile)
4452
}
4553

46-
yarnCommand
54+
command
4755

4856
if (targetLockFile.exists()) {
4957
logger.debug("Wrote lockfile to " + sourceLockFile)
5058
IO.copyFile(targetLockFile, sourceLockFile)
5159
}
5260
}
5361

62+
private def syncYarnLockfile(
63+
baseDir: File,
64+
installDir: File,
65+
logger: Logger
66+
)(
67+
command: => Unit
68+
): Unit = {
69+
syncLockfile("yarn.lock", baseDir, installDir, logger)(command)
70+
}
71+
72+
private def syncNpmLockfile(
73+
baseDir: File,
74+
installDir: File,
75+
logger: Logger
76+
)(
77+
command: => Unit
78+
): Unit = {
79+
syncLockfile("package-lock.json", baseDir, installDir, logger)(command)
80+
}
81+
5482
/**
5583
* Locally install NPM packages
5684
*
@@ -74,8 +102,9 @@ object ExternalCommand {
74102
logger)
75103
}
76104
} else {
77-
Npm.run("install" +: (npmPackages ++ npmExtraArgs): _*)(installDir,
78-
logger)
105+
syncNpmLockfile(baseDir, installDir, logger) {
106+
Npm.run("install" +: (npmPackages ++ npmExtraArgs): _*)(installDir, logger)
107+
}
79108
}
80109

81110
def install(baseDir: File,
@@ -90,6 +119,8 @@ object ExternalCommand {
90119
logger)
91120
}
92121
} else {
93-
Npm.run("install" +: npmExtraArgs: _*)(installDir, logger)
122+
syncNpmLockfile(baseDir, installDir, logger) {
123+
Npm.run("install" +: npmExtraArgs: _*)(installDir, logger)
124+
}
94125
}
95126
}

0 commit comments

Comments
 (0)