@@ -8,7 +8,10 @@ const npm = require('npm'),
8
8
logger = require ( "./logger" ) . winstonLogger ,
9
9
Constants = require ( './constants' ) ,
10
10
process = require ( 'process' ) ,
11
- utils = require ( './utils' ) ;
11
+ utils = require ( './utils' ) ,
12
+ { spawn } = require ( 'child_process' ) ;
13
+
14
+ let nodeProcess ;
12
15
13
16
const setupPackageFolder = ( runSettings , directoryPath ) => {
14
17
return new Promise ( function ( resolve , reject ) {
@@ -39,7 +42,7 @@ const setupPackageFolder = (runSettings, directoryPath) => {
39
42
if ( fs . existsSync ( sourceNpmrc ) ) {
40
43
fs . copyFileSync ( sourceNpmrc , destNpmrc ) ;
41
44
}
42
- return resolve ( "package file created" ) ;
45
+ return resolve ( "Package file created" ) ;
43
46
}
44
47
return reject ( "Nothing in package file" ) ;
45
48
} catch ( error ) {
@@ -51,25 +54,18 @@ const setupPackageFolder = (runSettings, directoryPath) => {
51
54
52
55
const packageInstall = ( packageDir ) => {
53
56
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' ) ;
67
63
}
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
+ } ) ;
73
69
} ) ;
74
70
} ;
75
71
0 commit comments