Я пытаюсь получить в свою папку только 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
@Hackerman Я пытаюсь использовать if (extension === html), но получаю ошибку TypeError: arguments[i].apply is not a function
@Hackerman спасибо за фильтр. Эта работа
Рад помочь @Aleksandr





Вам необходимо отфильтровать файлы перед 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');
Вам просто нужно добавить условие, например
if (extension === 'html')... вы также должны использоватьfilterвместоmap