Commit 2dd105df authored by Wei Zhu's avatar Wei Zhu Committed by Dan Abramov
Browse files

Make --scripts-version work with forked react-scripts (#632)

parent f8b47260
Showing with 17 additions and 5 deletions
+17 -5
...@@ -104,12 +104,14 @@ function createApp(name, verbose, version) { ...@@ -104,12 +104,14 @@ function createApp(name, verbose, version) {
} }
function run(root, appName, version, verbose, originalDirectory) { function run(root, appName, version, verbose, originalDirectory) {
var installPackage = getInstallPackage(version);
var packageName = getPackageName(installPackage);
var args = [ var args = [
'install', 'install',
verbose && '--verbose', verbose && '--verbose',
'--save-dev', '--save-dev',
'--save-exact', '--save-exact',
getInstallPackage(version), installPackage,
].filter(function(e) { return e; }); ].filter(function(e) { return e; });
var proc = spawn('npm', args, {stdio: 'inherit'}); var proc = spawn('npm', args, {stdio: 'inherit'});
proc.on('close', function (code) { proc.on('close', function (code) {
...@@ -118,12 +120,12 @@ function run(root, appName, version, verbose, originalDirectory) { ...@@ -118,12 +120,12 @@ function run(root, appName, version, verbose, originalDirectory) {
return; return;
} }
checkNodeVersion(); checkNodeVersion(packageName);
var scriptsPath = path.resolve( var scriptsPath = path.resolve(
process.cwd(), process.cwd(),
'node_modules', 'node_modules',
'react-scripts', packageName,
'scripts', 'scripts',
'init.js' 'init.js'
); );
...@@ -144,11 +146,21 @@ function getInstallPackage(version) { ...@@ -144,11 +146,21 @@ function getInstallPackage(version) {
return packageToInstall; 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( var packageJsonPath = path.resolve(
process.cwd(), process.cwd(),
'node_modules', 'node_modules',
'react-scripts', packageName,
'package.json' 'package.json'
); );
var packageJson = require(packageJsonPath); var packageJson = require(packageJsonPath);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment