@@ -268,7 +268,7 @@ function run(
268268 template ,
269269 useYarn
270270) {
271- const packageToInstall = getInstallPackage ( version ) ;
271+ const packageToInstall = getInstallPackage ( version , originalDirectory ) ;
272272 const allDependencies = [ 'react' , 'react-dom' , packageToInstall ] ;
273273
274274 console . log ( 'Installing packages. This might take a couple of minutes.' ) ;
@@ -365,11 +365,16 @@ function run(
365365 } ) ;
366366}
367367
368- function getInstallPackage ( version ) {
368+ function getInstallPackage ( version , originalDirectory ) {
369369 let packageToInstall = 'react-scripts' ;
370370 const validSemver = semver . valid ( version ) ;
371371 if ( validSemver ) {
372372 packageToInstall += `@${ validSemver } ` ;
373+ } else if ( version && version . match ( / ^ f i l e : / ) ) {
374+ packageToInstall = `file:${ path . resolve (
375+ originalDirectory ,
376+ version . match ( / ^ f i l e : ( .* ) ? $ / ) [ 1 ]
377+ ) } `;
373378 } else if ( version ) {
374379 // for tar.gz or alternative paths
375380 packageToInstall = version ;
@@ -459,6 +464,10 @@ function getPackageName(installPackage) {
459464 return Promise . resolve (
460465 installPackage . charAt ( 0 ) + installPackage . substr ( 1 ) . split ( '@' ) [ 0 ]
461466 ) ;
467+ } else if ( installPackage . match ( / ^ f i l e : / ) ) {
468+ const installPackagePath = installPackage . match ( / ^ f i l e : ( .* ) ? $ / ) [ 1 ] ;
469+ const installPackageJson = require ( path . join ( installPackagePath , 'package.json' ) ) ;
470+ return Promise . resolve ( installPackageJson . name ) ;
462471 }
463472 return Promise . resolve ( installPackage ) ;
464473}
0 commit comments