Cos*_*min 4 javascript node.js gulp
这个问题是关于gulp 3.8.10,使用gulp.watch而不是'gulp-watch'
我有一个任务,将我的所有html/css/js文件注入我的index.html
gulp.task('index', function () {
var sources = gulp.src(['./src/**/*.js', './src/**/*.css'], {read: false});
return gulp.src('./src/index.html')
.pipe(inject(sources, {ignorePath: 'src', addRootSlash: false }))
.pipe(gulp.dest('./src'));
});
Run Code Online (Sandbox Code Playgroud)
此任务由以下内容自动触发:
gulp.watch('src/**/*', ['index']);
Run Code Online (Sandbox Code Playgroud)
由于所有这些任务都是,将外部文件导入我的index.html,如下所示:
<!-- inject:js -->
<script src="app/app.js"></script>
<script src="module/module.js"></script>
<!-- endinject -->
Run Code Online (Sandbox Code Playgroud)
我想只让观察者运行此任务,如果添加了一个新文件,重新运行和修改我的index.html文件是没有意义的,当我只是更改已经注入的文件时.
有没有办法用gulp做到这一点?
编辑: 接受答案后,这是我的给定示例的实际代码:
gulp.watch('src/**/*', function(event) {
if (event.type === 'added' ) {
gulp.start('index');
}
});
Run Code Online (Sandbox Code Playgroud)
在任务或回调中,您将拥有一个event参数,该参数具有一个type属性,该参数将告诉您文件是否已添加,删除或更改.最好的选择可能是以你的任务为条件来利用它.
function watcher(event){
if(event.type === 'added'){ /* do work */ }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2738 次 |
| 最近记录: |