2017-06-15 31 views
0

我使用gulpgulp-pug,這樣我可以在我的模板分割成可重用的組件。帕格抓住任何現有的* .pug(翡翠)文件,並將其轉換爲瀏覽器同步和/或項目構建(在我的情況下)的通用html文件。杯和哈巴狗 - 無法解析嵌套的諧音

gulp.task('views', function buildHTML() { 
return gulp.src('src/views/*.pug') 
    .pipe(changed('src', { 
     extension: '.html' 
    })) 
    .pipe(pug({ 
     pretty: true 
    })) 
    .pipe(gulp.dest('src/')) 
}); 

gulp.task('watch', ['browserSync', 'views', 'sass'], function() { 
    gulp.watch('src/scss/**/*.scss', ['sass']); 
    gulp.watch('src/views/**/*.pug', ['views']); 
    // Reloads the browser whenever HTML or JS files change 
    gulp.watch('src/views/**/*.pug', browserSync.reload); 
    gulp.watch('src/*.html', browserSync.reload); 
    gulp.watch('src/js/**/*.js', browserSync.reload); 
}); 

gulp.task('default', function (callback) { 
    runSequence(['views', 'sass', 'browserSync', 'watch'], 
     callback 
    ); 
}); 

這是基本的哈巴狗index與包括諧音

doctype html 
html(lang='en') 
    include partials/head.pug 
    body 
    <!-- content --> 
    include partials/footer.pug 
    include partials/scripts.pug 

一切除了一件事順利運行,我views文件夾結構如下:

views 
--- partials 
    --- * 
    --- * 
    --- etc. 
--- index 

當我在我的一個部分(partials文件夾內的帕格文件)中進行更改並保存,實時重新加載功能按預期工作,但* .pug文件是不被解析。但是,當我保存index.pug時,文件將被轉換,並且頁面會加載新內容。

我在做什麼錯,在哪裏?

P.S.即使在編輯索引文件時,我也必須不時手動刷新頁面,以便它可以呈現頁面而不是空白頁面。

回答

0

這是一個很小但很大的錯誤。我也正在重新生成帕格文件,這對解析器造成了一些困惑。

我的表的任務是這樣的:

gulp.task('watch', ['browserSync', 'views', 'sass'], function() { 
    gulp.watch('src/scss/**/*.scss', ['sass']); 
    gulp.watch('src/views/**/*.pug', ['views']); 
    // Reloads the browser whenever HTML or JS files change 
    gulp.watch('src/views/**/*.pug', browserSync.reload); 
    gulp.watch('src/*.html', browserSync.reload); 
    gulp.watch('src/js/**/*.js', browserSync.reload); 
}); 

現在,我刪除了這條線:

gulp.watch('src/views/**/*.pug', browserSync.reload); 

這沒有任何意義,但我發現它。

您只需要注意html文件中的更改。