复制文件并将变量替换为NodeJS

问题描述 投票:0回答:1

我试图复制和替换多个文件中的一些变量。为此,我使用 esj 模块替换我的vars。

但我不知道ejs模块是否适合我的情况。我只想复制 "模板 "初始文件并替换文件中的变量。

我的例子是用NodeJS.NET来做的。

    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.

我不知道我的方法是好的,如果ejs是正确的模块。

任何人都可以帮助我吗?

谢谢大家!

node.js command-line-interface ejs
1个回答
0
投票

EISDIR代表 "错误,是目录"。这意味着NPM试图对一个文件做一些事情,但它是一个目录。试试这样的格式---path.join('xyz', 'pluginstest')

© www.soinside.com 2019 - 2024. All rights reserved.