From c0f1e8d61f63b3d0d825d7e9a8ee1d2bdb7c9c5c Mon Sep 17 00:00:00 2001 From: James Kyle Date: Mon, 20 Jun 2016 14:45:52 -0700 Subject: [PATCH] Fix bootstrap install to use quotes around versions (#235) * Fix bootstrap install to use quotes around versions * Address PR feedback --- src/commands/BootstrapCommand.js | 3 ++- test/BootstrapCommand.js | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/commands/BootstrapCommand.js b/src/commands/BootstrapCommand.js index a02892ad37..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) { 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();