一饮而尽;当对数据、包含或布局进行更改时,gulp watch不会重新编译站点
我在使用一饮而尽;当对数据、包含或布局进行更改时,gulp watch不会重新编译站点,gulp,gulp-watch,assemble,Gulp,Gulp Watch,Assemble,我在使用gulp assemble和gulp watch时遇到问题。我想gulp查看整个汇编源目录(数据,包括,布局和页面),并在文件更改时重新编译站点 我能够使页面正常工作,但是gulp在对数据进行更改时不会重新编译站点,包括或布局文件 我在gulp assembly存储库中添加了一个watch任务: var gulp=require('gulp'); var htmlmin=require('gulp-htmlmin'); var extname=require('gulp-extname'
gulp assemble
和gulp watch
时遇到问题。我想gulp
查看整个汇编源目录(数据
,包括
,布局
和页面
),并在文件更改时重新编译站点
我能够使页面正常工作,但是gulp
在对数据进行更改时不会重新编译站点,包括或布局文件
我在gulp assembly
存储库中添加了一个watch
任务:
var gulp=require('gulp');
var htmlmin=require('gulp-htmlmin');
var extname=require('gulp-extname');
var assemble=需要('assemble');
var中间件=require('./示例/中间件');
var gulpAssemble=require('./');
//集合对象上的设置项
数据({site:{title:'Blog'}});
data(['test/fixtures/data/.{json,yml}']);
组装布局(['test/fixture/layouts/*.hbs']);
组装.零件(['test/fixture/includes/*.hbs']);
//加载文件时运行的任意中间件
onLoad(/index\.hbs/,中间件(assemble));
//在“测试/设备”中呈现模板`
吞咽任务('default',函数(){
gulp.src('test/fixture/pages/*.hbs')
.pipe(gulpAssemble(汇编,{layout:'default'}))
.pipe(htmlmin({collapseWhitespace:true}))
.pipe(extname())
.pipe(大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口);
});
// ============================================================
//我的手表任务
// ============================================================
gulp.task('watch',['default',function()){
gulp.watch('test/fixtures/***.{hbs,yml,json}',['default']);
});
如果我运行gulp watch
并将更改保存到pages
目录中的任何.hbs
文件,我会看到gulp
触发终端输出中的默认值
,我会看到\gh\u pages
中的.html
文件随更改而更新
但是,如果我在数据
,包含
或布局
目录中保存对.hbs
、.json
或.yml
文件的更改,我会在终端输出中看到gulp
触发默认
,但是我看不到\u gh_页面
.html
文件有任何更改。我必须手动运行gulpdefault
任务,以便将更改应用于\u gh_页面
文件
为了获得所需的行为,我需要更改什么?gulp watch将只在默认任务的函数内部执行代码,因此要重新加载数据和布局等内容,需要将这些代码片段移动到函数内部(就在gulp.src之前)
var gulp = require('gulp');
var htmlmin = require('gulp-htmlmin');
var extname = require('gulp-extname');
var assemble = require('assemble');
var middleware = require('./examples/middleware');
var gulpAssemble = require('./');
// arbitrary middleware that runs when files loaded
assemble.onLoad(/index\.hbs/, middleware(assemble));
// render templates in `test/fixtures`
gulp.task('default', function () {
// setup items on the assemble object
assemble.data({site: {title: 'Blog'}});
assemble.data(['test/fixtures/data/*.{json,yml}']);
assemble.layouts(['test/fixtures/layouts/*.hbs']);
assemble.partials(['test/fixtures/includes/*.hbs']);
gulp.src('test/fixtures/pages/*.hbs')
.pipe(gulpAssemble(assemble, { layout: 'default' }))
.pipe(htmlmin({collapseWhitespace: true}))
.pipe(extname())
.pipe(gulp.dest('_gh_pages/'));
});
// ============================================================
// my watch task
// ============================================================
gulp.task('watch', ['default'], function() {
gulp.watch('test/fixtures/**/*.{hbs,yml,json}', ['default']);
});