#node.js #npm #exec
#node.js #npm #exec
Вопрос:
У меня есть 4 проекта, которые зависят друг от друга, 3 сервера nodes и 1 проект react. Я хотел бы написать небольшой скрипт под названием ‘go.js ‘ на внешнем сервере, который выполняет команды «npm i» для всех моих проектов, одну за другой.
Я создал следующий код в node для тестирования одного проекта (это go.js код):
const exec = require('child_process').exec;
exec('npm i --prefix C:\Or\_OSREnterprises\Web\OSRWebVisualizer\WebVisualizer\streamer\', {}, function(error, stdout, stderr) {
console.log(error);
console.log(stdout);
console.log(stderr);
// work with result
});
и результат, который я получаю:
> manager@1.0.0 go C:Or_OSREnterprisesWebOSRWebVisualizerWebVisualizermanager
> node src/scripts/go.js
null
C:Or_OSREnterprisesWebOSRWebVisualizerWebVisualizerstreamerparser -> C:Or_OSREnterprisesWebOSRWebVisualizerWebVisualizerstreamernode_modules@babelparserbinbabel-parser.js
C:Or_OSREnterprisesWebOSRWebVisualizerWebVisualizerstreamerjsesc -> C:Or_OSREnterprisesWebOSRWebVisualizerWebVisualizerstreamernode_modulesjsescbinjsesc
C:Or_OSREnterprisesWebOSRWebVisualizerWebVisualizerstreamermime -> C:Or_OSREnterprisesWebOSRWebVisualizerWebVisualizerstreamernode_modulesmimecli.js
manager@1.0.0
added 107 packages from 102 contributors and updated 1 package in 7.807s
и когда я захожу в папку «streamer», я вижу, что папки «node_modules» есть, но узел добавил несколько странных и ненужных файлов:
Есть ли какой-либо способ избежать добавления этих файлов? Спасибо.
Ответ №1:
Я изменил код на:
const exec = require('child_process').exec;
exec(command, {
cwd: applicationPath
}, (error, stdout, stderr) => {
resolve({
error: error,
stdout: stdout,
stderr: stderr
});
});
И это работает без создания файлов.