@@ -69,25 +69,27 @@ exports.inspect = function inspect(object, indent) {
6969 return sb . join ( "\n" ) ;
7070} ;
7171
72- exports . require = function ( name , version ) {
73- var sub = "" ;
74- var p = name . indexOf ( "/" ) ;
75- if ( p > - 1 ) {
76- sub = name . substring ( p ) ;
77- name = name . substring ( 0 , p ) ;
72+ exports . setup = function ( modules , versions ) {
73+ for ( var i = 0 ; i < modules . length ; ) {
74+ try {
75+ // do not feed the cache
76+ require . resolve ( path . join ( modules [ i ] , "package.json" ) ) ;
77+ modules . splice ( i , 1 ) ;
78+ } catch ( e ) {
79+ ++ i ;
80+ }
7881 }
79- var cwd = path . join ( __dirname , ".." ) ;
80- var dir = path . join ( cwd , "node_modules" , name ) ;
81- try {
82- // do not feed the cache
83- require . resolve ( path . join ( dir , "package.json" ) ) ;
84- } catch ( e ) {
85- console . error ( "installing " + name + "@" + version + " ..." ) ;
86- child_process . execSync ( "npm --silent install " + name + "@" + version , {
87- cwd : cwd
88- } ) ;
89- }
90- return require ( name + sub ) ;
82+ if ( ! modules . length )
83+ return ;
84+ modules = modules . map ( function ( name ) {
85+ return name + "@" + versions [ name ] ;
86+ } ) ;
87+ var cmd = "npm --silent --only=prod install " + modules . join ( " " ) ;
88+ process . stderr . write ( "setting up " + modules . join ( ", " ) + " ...\n" ) ;
89+ child_process . execSync ( cmd , {
90+ cwd : path . join ( __dirname , ".." ) ,
91+ stdio : "ignore"
92+ } ) ;
9193} ;
9294
9395exports . wrap = function ( OUTPUT , options ) {
0 commit comments