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

Analog `fs.readdirSync` node.js without recursive

我尝试只将 html 个文件放入我的文件夹。但是我的代码将所有文件夹都放入我的根文件夹中,结果 return 结果是我。我只想获取 .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 个文件到我的函数中

您需要在 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');