模拟`fs.readdirSync` node.js没有递归

时间:2018-05-09 16:00:22

标签: node.js webpack html-webpack-plugin

我尝试只将html文件存入我的文件夹。但我的代码将所有文件夹放入我的根文件夹并返回结果我。我想只获取.html个文件。

我的结构项目

src folder folder2 index.html inner.html

我只需要index.htmlinner.html 我的代码:

function generateHtmlPlugins(templateDir) {
  const templateFiles = fs.readdirSync(join(rootDir, templateDir));

  return templateFiles.map(item => {
    const parts = item.split('.');
    const name = parts[0];
    const extension = parts[1];

    return new HtmlWebpackPlugin({
      filename: `${name}.html`,
      template: join(rootDir, `./${templateDir}/${name}.${extension}`),
      inject: false
    });
  });
}

const htmlPlugins = generateHtmlPlugins('./src');

请帮助我只将.html个文件发送到我的功能

1 个答案:

答案 0 :(得分:0)

您需要在map

之前过滤文件
function generateHtmlPlugins(templateDir) {
  const templateFiles = fs.readdirSync(join(rootDir, templateDir));
  const htmlFiles = templateFiles.filter(item => item.split('.')[1] === 'html');

  return htmlFiles.map(item => {
    const parts = item.split('.');
    const name = parts[0];
    const extension = parts[1];

    return new HtmlWebpackPlugin({
      filename: `${name}.html`,
      template: join(rootDir, `./${templateDir}/${name}.${extension}`),
      inject: false
    });
  });
}

const htmlPlugins = generateHtmlPlugins('./src');