Как запустить (синхронизировать) несколько файлов .js из каталога - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь запустить несколько файлов .js из каталога:

exampleDir / test.js

console.log('hi');

run.js

const fs = require('fs');
const {execFileSync} = require('child_process');

const testsFolder = './exampleDir/';

const files = fs.readdirSync(testsFolder);

const funcs = files.map(function(file) {
    const out = execFileSync(`node ${testsFolder}${file}`);
    console.log(out.toString());
});

однако я получаю:

> example@1.0.0 test /home/perdugames/example
> node ./run.js

child_process.js:624
    throw err;
    ^

Error: spawnSync node ./exampleDir/test.js ENOENT
  ...

1 Ответ

0 голосов
/ 01 октября 2018

Пути к файлам должны быть определены однозначно, предпочтительно независимо от текущего рабочего каталога и относительно текущего модуля.Для создания нового процесса Node есть spawn и spawnSync в child_process:

...
const path = require('path');
const testsFolder = path.join(__dirname, './exampleDir/');
const files = fs.readdirSync(testsFolder);

const funcs = files.map(function(file) {
    const filePath = path.join(testsFolder, file);
    const out = spawnSync(filePath);
    console.log(out.stdout.toString());
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...