Skip to content

Commit 37080f8

Browse files
committed
replace npm library with a child_process spawn to install npm dependencies
1 parent 98aec7f commit 37080f8

File tree

1 file changed

+16
-20
lines changed

1 file changed

+16
-20
lines changed

bin/helpers/packageInstaller.js

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

1316
const 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

5255
const 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

Comments
 (0)