Скопируйте файл и замените переменную на NodeJS - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь скопировать и заменить некоторые переменные в файлах с кратным числом. Для этого я использую модуль esj вместо моих переменных.

Но я не знаю, подходит ли модуль e js для моего случая. Я хотел бы просто скопировать исходный файл "template" и заменить переменную в файле.

Мой пример с использованием NodeJS:

    const symfonyPluginPath = path.join(
      __dirname,
      '../plugins/symfony/template'
    );
    const testPath = path.join(__dirname, '../plugins/test');
    shell.rm('-rf', testPath);
    shell.mkdir(testPath);
    shell.cp('-r', `${symfonyPluginPath}/*`, testPath);
    shell.cp('-r', `${symfonyPluginPath}/.*`, testPath);
    shell.cd(testPath);

    // @ts-ignore
    fs.readdir(testPath, (error, files) => {
      files.forEach((file) => {
        const compiled = ejs.compile(
          fs.readFileSync(`${testPath}/${file}`, 'utf8')
        );
        const test = compiled({ appName: 'test' });

        console.log(test);
      });
    });

Этот код работает только для 1 файла, но в forEach у меня ошибка EISDIR: illegal operation on a directory, read.

Я не знаю, подходит ли мой подход и подходит ли для этого модуль e js.

Кто-нибудь может мне помочь?

Спасибо, сообщество!

1 Ответ

0 голосов
/ 28 апреля 2020

EISDIR означает «Ошибка, каталог». Это означает, что NPM пытается что-то сделать с файлом, но это каталог. Попробуйте в этом формате --- path.join ('x / y / z', '/ plugins / test')

...