Добавление ненужных файлов при выполнении команды «npm i» в коде

#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
                    });
                });
  

И это работает без создания файлов.