From c5f5b006d83316b3c016adc41b95c28912ecdda8 Mon Sep 17 00:00:00 2001
From: Jih-Chi Lee <jihchi@users.noreply.github.com>
Date: Wed, 12 Oct 2016 20:46:14 +0800
Subject: [PATCH] Fix using pre-release tags with a tarball url in
 `--scripts-version` (#876)

* Add supports for prelease tags version

* Add comment to regex

* Cut everything after the first -\d

* Make semver version optional, so just package name get parsed correctly
---
 packages/create-react-app/index.js | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/packages/create-react-app/index.js b/packages/create-react-app/index.js
index 1ea4f108c..d6478a135 100644
--- a/packages/create-react-app/index.js
+++ b/packages/create-react-app/index.js
@@ -153,7 +153,9 @@ function getInstallPackage(version) {
 // Extract package name from tarball url or path.
 function getPackageName(installPackage) {
   if (installPackage.indexOf('.tgz') > -1) {
-    return installPackage.match(/^.+\/(.+)-.+\.tgz$/)[1];
+    // The package name could be with or without semver version, e.g. react-scripts-0.2.0-alpha.1.tgz
+    // However, this function returns package name only wihout semver version.
+    return installPackage.match(/^.+\/(.+?)(?:-\d+.+)?\.tgz$/)[1];
   } else if (installPackage.indexOf('@') > 0) {
     // Do not match @scope/ when stripping off @version or @tag
     return installPackage.charAt(0) + installPackage.substr(1).split('@')[0];
-- 
GitLab