From 4cadd4fbbf43de294debfd7e8aa3eb1af681509a Mon Sep 17 00:00:00 2001 From: Archie Lee Date: Sat, 8 Oct 2016 17:35:19 +0800 Subject: [PATCH 1/4] Add supports for prelease tags version --- packages/create-react-app/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-react-app/index.js b/packages/create-react-app/index.js index 1ea4f108cc..b6e9d60900 100644 --- a/packages/create-react-app/index.js +++ b/packages/create-react-app/index.js @@ -153,7 +153,7 @@ function getInstallPackage(version) { // Extract package name from tarball url or path. function getPackageName(installPackage) { if (installPackage.indexOf('.tgz') > -1) { - return installPackage.match(/^.+\/(.+)-.+\.tgz$/)[1]; + return installPackage.match(/^.+\/(.+)-[0-9]+\.[0-9]+\.[0-9]+(?:[-+].+)?\.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]; From 9234a7d9326853b0d4284329a5d363846506c302 Mon Sep 17 00:00:00 2001 From: Archie Lee Date: Tue, 11 Oct 2016 23:25:25 +0800 Subject: [PATCH 2/4] Add comment to regex --- packages/create-react-app/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/create-react-app/index.js b/packages/create-react-app/index.js index b6e9d60900..757327cb9d 100644 --- a/packages/create-react-app/index.js +++ b/packages/create-react-app/index.js @@ -153,6 +153,8 @@ function getInstallPackage(version) { // Extract package name from tarball url or path. function getPackageName(installPackage) { if (installPackage.indexOf('.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(/^.+\/(.+)-[0-9]+\.[0-9]+\.[0-9]+(?:[-+].+)?\.tgz$/)[1]; } else if (installPackage.indexOf('@') > 0) { // Do not match @scope/ when stripping off @version or @tag From a27ca1d1634a26c7ab5a8225dbd255f5a6951155 Mon Sep 17 00:00:00 2001 From: Archie Lee Date: Tue, 11 Oct 2016 23:47:52 +0800 Subject: [PATCH 3/4] Cut everything after the first -\d --- packages/create-react-app/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-react-app/index.js b/packages/create-react-app/index.js index 757327cb9d..5080b4c61a 100644 --- a/packages/create-react-app/index.js +++ b/packages/create-react-app/index.js @@ -155,7 +155,7 @@ function getPackageName(installPackage) { if (installPackage.indexOf('.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(/^.+\/(.+)-[0-9]+\.[0-9]+\.[0-9]+(?:[-+].+)?\.tgz$/)[1]; + 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]; From f47475fdab4db0e9c17137065793b873b31d199f Mon Sep 17 00:00:00 2001 From: Archie Lee Date: Wed, 12 Oct 2016 11:16:24 +0800 Subject: [PATCH 4/4] Make semver version optional, so just package name get parsed correctly --- packages/create-react-app/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/create-react-app/index.js b/packages/create-react-app/index.js index 5080b4c61a..d6478a1354 100644 --- a/packages/create-react-app/index.js +++ b/packages/create-react-app/index.js @@ -154,8 +154,8 @@ function getInstallPackage(version) { function getPackageName(installPackage) { if (installPackage.indexOf('.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]; + // 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];