我在使用问题gulp-assemble
与gulp-watch
。 我想gulp
观看整个组装源目录( data
, includes
, layouts
和pages
),并重新编译网站当过一个文件的更改。
我能够得到这个工作正常的pages
,但gulp
时更改了做不重新编译的网站data
, includes
或layouts
文件。
我添加了一个watch
任务的例子gulpfile.js在gulp-assemble
库:
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('./');
// 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']);
// arbitrary middleware that runs when files loaded
assemble.onLoad(/index\.hbs/, middleware(assemble));
// render templates in `test/fixtures`
gulp.task('default', function () {
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']);
});
如果我运行gulp watch
和保存更改任何的.hbs
中的文件pages
目录,我看到gulp
触发default
在我的终端输出,我看到.html
文件_gh_pages
更新与变化。
但是,如果我保存更改任何的.hbs
, .json
或.yml
文件中的data
, includes
或layouts
的目录,我看到gulp
触发default
在我的终端输出,但我看不出有任何更改_gh_pages
.html
文件(S)。 我必须运行gulp default
,以获得适用于变更手动任务_gh_pages
文件。
我需要什么,以获得所需的行为改变?