Аналог `fs.readdirSync` node.js без рекурсии - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь получить только файлы HTML в мою папку.Но мой код помещает все папки в мои корневые папки и возвращает результат мне.Я хочу получить только .html файлы.

Моя структура проекта

src folder folder2 index.html inner.html

Мне нужно только index.html и inner.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 голосов

Вам нужно отфильтровать ваши файлы до 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');
...