@@ -8,7 +8,10 @@ const npm = require('npm'),
88 logger = require ( "./logger" ) . winstonLogger ,
99 Constants = require ( './constants' ) ,
1010 process = require ( 'process' ) ,
11- utils = require ( './utils' ) ;
11+ utils = require ( './utils' ) ,
12+ { spawn } = require ( 'child_process' ) ;
13+
14+ let nodeProcess ;
1215
1316const setupPackageFolder = ( runSettings , directoryPath ) => {
1417 return new Promise ( function ( resolve , reject ) {
@@ -39,7 +42,7 @@ const setupPackageFolder = (runSettings, directoryPath) => {
3942 if ( fs . existsSync ( sourceNpmrc ) ) {
4043 fs . copyFileSync ( sourceNpmrc , destNpmrc ) ;
4144 }
42- return resolve ( "package file created" ) ;
45+ return resolve ( "Package file created" ) ;
4346 }
4447 return reject ( "Nothing in package file" ) ;
4548 } catch ( error ) {
@@ -51,25 +54,18 @@ const setupPackageFolder = (runSettings, directoryPath) => {
5154
5255const packageInstall = ( packageDir ) => {
5356 return new Promise ( function ( resolve , reject ) {
54- let savedPrefix = null ;
55- let npmLoad = Constants . packageInstallerOptions . npmLoad
56- npmLoad [ "cache" ] = fs . mkdtempSync ( `${ os . tmpdir ( ) } ${ path . sep } ` ) ;
57- const installCallback = ( err , result ) => {
58- npm . prefix = savedPrefix ;
59- if ( err ) {
60- return reject ( err ) ;
61- }
62- resolve ( result ) ;
63- } ;
64- const loadCallback = ( err ) => {
65- if ( err ) {
66- return reject ( err ) ;
57+ nodeProcess = spawn ( 'npm' , [ 'install' ] , { cwd : packageDir } ) ;
58+ nodeProcess . on ( 'close' , ( code ) => {
59+ if ( code == 0 ) {
60+ resolve ( 'Packages were installed' ) ;
61+ } else {
62+ reject ( 'Packages were not installed' ) ;
6763 }
68- savedPrefix = npm . prefix ;
69- npm . prefix = packageDir ;
70- npm . commands . install ( packageDir , [ ] , installCallback ) ;
71- } ;
72- npm . load ( npmLoad , loadCallback ) ;
64+ } ) ;
65+ nodeProcess . on ( 'error' , ( error ) => {
66+ logger . error ( `Some error occurred while installing packages: ${ error } ` ) ;
67+ reject ( 'Packages were not installed' ) ;
68+ } ) ;
7369 } ) ;
7470} ;
7571
0 commit comments