Глоток: Как я могу построить filename.pug к filename / index.html - PullRequest
1 голос
/ 09 мая 2019

Теперь я использую gulp-pug

gulp.task('html', function(){
    return gulp.src(['src/**/*.pug', ...ignorePug])
        .pipe(pug())
        .pipe(gulp.dest('build'))
});

Как мне построить свой HTML, чтобы имена файлов были именами папок.

Пример:

src/index.pug -> build/index.html
src/team.pug -> build/team/index.html
src/somepage.pug -> build/somepage/index.html

1 Ответ

0 голосов
/ 09 мая 2019

У меня было то же желание, и я написал функцию, которая использует gulp-rename для перезаписи путей к файлам по мере их обработки.

После того, как вы запустите pug(), запустите rename() с этой функцией:

// custom pathbuilder function
const pathbuilder = (path) => {
    if ('index' !== path.basename) {
        path.dirname = path.basename.split('_').join('/')
        path.basename = 'index'
    }
}

gulp.task('html', function(){
    return gulp.src(['src/**/*.pug', ...ignorePug])
        .pipe( pug() )
        .pipe( rename((path) => { pathbuilder(path) }) )
        .pipe( gulp.dest('build') )
})

Он настроен на то, что вы ищете.Кроме того, вы можете использовать подчеркивания, чтобы углубиться в каталоги.

src/index.pug          -> build/index.html
src/team.pug           -> build/team/index.html
src/team_alexander.pug -> build/team/alexander/index.html
src/somepage.pug       -> build/somepage/index.html

Обязательно установите и сначала потребуется пакет переименования.

...