diff --git a/__fixtures__/lockfile-leaf-v2/packages/package-1/package-lock.json b/__fixtures__/lockfile-leaf-v2/packages/package-1/package-lock.json index c676a3a8c3..973e9ef3eb 100644 --- a/__fixtures__/lockfile-leaf-v2/packages/package-1/package-lock.json +++ b/__fixtures__/lockfile-leaf-v2/packages/package-1/package-lock.json @@ -8,7 +8,11 @@ "name": "package-1", "version": "1.0.0", "dependencies": { - "tiny-tarball": "^1.0.0" + "tiny-tarball": "^1.0.0", + "package-2": "^1.0.0" + }, + "devDependencies": { + "package-3": "2.0.0" } }, "node_modules/tiny-tarball": { diff --git a/__fixtures__/lockfile-leaf-v2/packages/package-1/package.json b/__fixtures__/lockfile-leaf-v2/packages/package-1/package.json index ee217c2df6..481eafbac8 100644 --- a/__fixtures__/lockfile-leaf-v2/packages/package-1/package.json +++ b/__fixtures__/lockfile-leaf-v2/packages/package-1/package.json @@ -2,6 +2,10 @@ "name": "package-1", "version": "1.0.0", "dependencies": { - "tiny-tarball": "^1.0.0" + "tiny-tarball": "^1.0.0", + "package-2": "^1.0.0" + }, + "devDependencies": { + "package-3": "2.0.0" } } diff --git a/commands/version/__tests__/update-lockfile-version.test.js b/commands/version/__tests__/update-lockfile-version.test.js index 551c07821b..6f68ac7046 100644 --- a/commands/version/__tests__/update-lockfile-version.test.js +++ b/commands/version/__tests__/update-lockfile-version.test.js @@ -30,6 +30,8 @@ test("updateLockfileVersion with lockfile v2", async () => { const [pkg] = await getPackages(cwd); pkg.version = "2.0.0"; + pkg.dependencies["package-1"] = "^2.0.0"; + pkg.devDependencies["package-2"] = "3.0.0"; const returnedLockfilePath = await updateLockfileVersion(pkg); @@ -37,7 +39,9 @@ test("updateLockfileVersion with lockfile v2", async () => { expect(Array.from(loadJsonFile.registry.keys())).toStrictEqual(["/packages/package-1"]); const updatedLockfile = fs.readJSONSync(returnedLockfilePath); expect(updatedLockfile).toHaveProperty("version", "2.0.0"); - expect(updatedLockfile).toHaveProperty(["packages", "", "version"], "2.0.0"); + expect(updatedLockfile).toHaveProperty(["packages", "", "dependencies", "package-1"], "^2.0.0"); + expect(updatedLockfile).toHaveProperty(["packages", "", "dependencies", "tiny-tarball"], "^1.0.0"); + expect(updatedLockfile).toHaveProperty(["packages", "", "devDependencies", "package-2"], "3.0.0"); }); test("updateLockfileVersion without sibling lockfile", async () => { diff --git a/commands/version/lib/update-lockfile-version.js b/commands/version/lib/update-lockfile-version.js index 09a7427e50..06f131b870 100644 --- a/commands/version/lib/update-lockfile-version.js +++ b/commands/version/lib/update-lockfile-version.js @@ -18,6 +18,12 @@ function updateLockfileVersion(pkg) { if (obj.packages && obj.packages[""]) { obj.packages[""].version = pkg.version; + if (obj.packages[""].dependencies) { + obj.packages[""].dependencies = pkg.dependencies; + } + if (obj.packages[""].devDependencies) { + obj.packages[""].devDependencies = pkg.devDependencies; + } } return writeJsonFile(lockfilePath, obj, {