我正在尝试编写一个gulpfile,如下所示:
var gulp = require('gulp');
// other dependencies go here ....
// source of files
var inputs = require('./asset_source.js');
// a simple task
gulp.task('css', function () {
gulp.src(inputs.css)
.pipe(debug())
.pipe(plumber())
.pipe(maps.init())
.pipe(concatCss('libs.css'))
.pipe(maps.write('../srcmaps'))
.pipe(plumber.stop())
.pipe(gulp.dest('assets/css'));
});
// the watcher
gulp.task('watch', function () {
gulp.watch('./asset_source.js', ['css']);
});
// default task
gulp.task('default', ['browser-sync', 'watch']);
资产来源(asset_source.js)文件是这样的:
module.exports = {
css: [
'path/to/a/file.css',
'path/to/another/file.css',
.......
.......
],
js: [
'path/to/a/file.js',
'path/to/another/file.js',
.......
.......
]
};
现在我只需在控制台中输入 gulp 即可运行应用程序,并且由于browserync,它会在浏览器中启动。我拥有asset_source.js文件中列出的所有css,scss,js资产,该文件与gulpfile.js位于同一目录中。我想要实现的是,如果我向asset_source.js中的任何一个数组追加或删除一个值,那么相关任务应该在gulp已经运行时运行。在这种情况下, css 应该在对 asset_source.js 及其更新内容的任何更改上运行。
但相反它并没有这样做。即使asset_source文件发生更改,gulp也会使用初始内容并运行任务。但是,如果在单独的终端中运行 gulp css ,则可以正常工作。
请在我出错或有可能的地方帮助我。感谢。