diff --git a/global-cli/index.js b/global-cli/index.js
index fdee7863693ca9984ca9fb94f19f06e389a1b63c..1ac63a81a27f3b7238d166d7f8bad3f6e67cf1c9 100644
--- a/global-cli/index.js
+++ b/global-cli/index.js
@@ -104,12 +104,14 @@ function createApp(name, verbose, version) {
 }
 
 function run(root, appName, version, verbose, originalDirectory) {
+  var installPackage = getInstallPackage(version);
+  var packageName = getPackageName(installPackage);
   var args = [
     'install',
     verbose && '--verbose',
     '--save-dev',
     '--save-exact',
-    getInstallPackage(version),
+    installPackage,
   ].filter(function(e) { return e; });
   var proc = spawn('npm', args, {stdio: 'inherit'});
   proc.on('close', function (code) {
@@ -118,12 +120,12 @@ function run(root, appName, version, verbose, originalDirectory) {
       return;
     }
 
-    checkNodeVersion();
+    checkNodeVersion(packageName);
 
     var scriptsPath = path.resolve(
       process.cwd(),
       'node_modules',
-      'react-scripts',
+      packageName,
       'scripts',
       'init.js'
     );
@@ -144,11 +146,21 @@ function getInstallPackage(version) {
   return packageToInstall;
 }
 
-function checkNodeVersion() {
+// Extract package name from tarball url or path.
+function getPackageName(installPackage) {
+  if (~installPackage.indexOf('.tgz')) {
+    return installPackage.match(/^.+\/(.+)-.+\.tgz$/)[1];
+  } else if (~installPackage.indexOf('@')) {
+    return installPackage.split('@')[0];
+  }
+  return installPackage;
+}
+
+function checkNodeVersion(packageName) {
   var packageJsonPath = path.resolve(
     process.cwd(),
     'node_modules',
-    'react-scripts',
+    packageName,
     'package.json'
   );
   var packageJson = require(packageJsonPath);