@@ -401,26 +401,28 @@ Installer.prototype.readLocalPackageData = function (cb) {
401
401
validate ( 'F' , arguments )
402
402
log . silly ( 'install' , 'readLocalPackageData' )
403
403
var self = this
404
- readPackageTree ( this . where , iferr ( cb , function ( currentTree ) {
405
- self . currentTree = currentTree
406
- if ( ! self . noPackageJsonOk && ! currentTree . package ) {
407
- log . error ( 'install' , "Couldn't read dependencies" )
408
- var er = new Error ( "ENOENT, open '" + path . join ( self . where , 'package.json' ) + "'" )
409
- er . code = 'ENOPACKAGEJSON'
410
- er . errno = 34
411
- return cb ( er )
412
- }
413
- if ( ! currentTree . package ) currentTree . package = { }
414
- if ( currentTree . package . _shrinkwrap ) return cb ( )
415
- fs . readFile ( path . join ( self . where , 'npm-shrinkwrap.json' ) , { encoding : 'utf8' } , function ( er , data ) {
416
- if ( er ) return cb ( )
417
- try {
418
- currentTree . package . _shrinkwrap = JSON . parse ( data )
419
- } catch ( ex ) {
420
- return cb ( ex )
421
- }
422
- return cb ( )
423
- } )
404
+ mkdirp ( this . where , iferr ( cb , function ( ) {
405
+ readPackageTree ( self . where , iferr ( cb , function ( currentTree ) {
406
+ self . currentTree = currentTree
407
+ if ( ! self . noPackageJsonOk && ! currentTree . package ) {
408
+ log . error ( 'install' , "Couldn't read dependencies" )
409
+ var er = new Error ( "ENOENT, open '" + path . join ( self . where , 'package.json' ) + "'" )
410
+ er . code = 'ENOPACKAGEJSON'
411
+ er . errno = 34
412
+ return cb ( er )
413
+ }
414
+ if ( ! currentTree . package ) currentTree . package = { }
415
+ if ( currentTree . package . _shrinkwrap ) return cb ( )
416
+ fs . readFile ( path . join ( self . where , 'npm-shrinkwrap.json' ) , { encoding : 'utf8' } , function ( er , data ) {
417
+ if ( er ) return cb ( )
418
+ try {
419
+ currentTree . package . _shrinkwrap = JSON . parse ( data )
420
+ } catch ( ex ) {
421
+ return cb ( ex )
422
+ }
423
+ return cb ( )
424
+ } )
425
+ } ) )
424
426
} ) )
425
427
426
428
}
0 commit comments