From 40613d02cbfe0b3b0aca5b6770e8e14f74a46c04 Mon Sep 17 00:00:00 2001 From: James Kyle Date: Mon, 20 Jun 2016 12:11:29 -0700 Subject: [PATCH 1/2] Fix bootstrap install to use quotes around versions --- src/commands/BootstrapCommand.js | 2 +- test/BootstrapCommand.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/commands/BootstrapCommand.js b/src/commands/BootstrapCommand.js index a02892ad37..48f19d14a9 100644 --- a/src/commands/BootstrapCommand.js +++ b/src/commands/BootstrapCommand.js @@ -109,7 +109,7 @@ export default class BootstrapCommand extends Command { return !this.hasDependencyInstalled(pkg, dependency); }) .map(dependency => { - return dependency + "@" + allDependencies[dependency]; + return dependency + "@\"" + allDependencies[dependency] + "\""; }); if (externalPackages.length) { diff --git a/test/BootstrapCommand.js b/test/BootstrapCommand.js index 922fb0c03e..fd2ed045a4 100644 --- a/test/BootstrapCommand.js +++ b/test/BootstrapCommand.js @@ -28,7 +28,7 @@ describe("BootstrapCommand", () => { assertStubbedCalls([ [ChildProcessUtilities, "spawn", { nodeCallback: true }, [ - { args: ["npm", ["install", "package-1@^0.0.0"], { cwd: path.join(testDir, "packages/package-4"), stdio: "ignore" }] } + { args: ["npm", ["install", "package-1@\"^0.0.0\""], { cwd: path.join(testDir, "packages/package-4"), stdio: "ignore" }] } ]] ]); @@ -77,7 +77,7 @@ describe("BootstrapCommand", () => { assertStubbedCalls([ [ChildProcessUtilities, "spawn", { nodeCallback: true }, [ - { args: ["npm", ["install", "package-1@^0.0.0"], { cwd: path.join(testDir, "packages/package-4"), stdio: "ignore" }] } + { args: ["npm", ["install", "package-1@\"^0.0.0\""], { cwd: path.join(testDir, "packages/package-4"), stdio: "ignore" }] } ]] ]); @@ -131,7 +131,7 @@ describe("BootstrapCommand", () => { let installed = false; stub(ChildProcessUtilities, "spawn", (command, args, options, callback) => { - assert.deepEqual(args, ["install", "external@^1.0.0"]) + assert.deepEqual(args, ["install", "external@\"^1.0.0\""]) assert.deepEqual(options, { cwd: path.join(testDir, "packages/package-1"), stdio: "ignore" }) installed = true; callback(); From aa858a480108b23348d17f9f373ea6a05cda38eb Mon Sep 17 00:00:00 2001 From: James Kyle Date: Mon, 20 Jun 2016 14:42:12 -0700 Subject: [PATCH 2/2] Address PR feedback --- src/commands/BootstrapCommand.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/commands/BootstrapCommand.js b/src/commands/BootstrapCommand.js index 48f19d14a9..135b1a567e 100644 --- a/src/commands/BootstrapCommand.js +++ b/src/commands/BootstrapCommand.js @@ -109,7 +109,8 @@ export default class BootstrapCommand extends Command { return !this.hasDependencyInstalled(pkg, dependency); }) .map(dependency => { - return dependency + "@\"" + allDependencies[dependency] + "\""; + // Needs "quotes" for versions like "^1.0.0 || ^2.0.0" + return `${dependency}@"${allDependencies[dependency]}"`; }); if (externalPackages.length) {