如何按特定顺序运行 Gulp 任务
How to run Gulp-tasks in the particular order
>我正在使用runsequence插件。但似乎我做错了什么,所以它不起作用。我正在尝试创建浏览器化构建,并使用运行序列 gulp 插件将其与服务器上的车把预编译模板连接起来。
在 gulpfile 中,相应的任务如下所示:
gulp.task("browserify", function () {
gulp.src('src/js/map.js')
.pipe(browserify({
insertGlobals: false,
debug: false
}))
.pipe(gulp.dest('build'))
.pipe(notify({ message: "browserify ended" }));
});
gulp.task("scripts", function () {
var newDir;
newDir = './build/1111';
gulp.src(['./build/map.js', './build/templates/templates.js'])
.pipe(concat('build.js'))
.pipe(gulp.dest(newDir))
.pipe(notify({ message: "scripts build ended" }));
});
gulp.task('default', function () {
runSequence( 'browserify', 'scripts' );
});
但实际上脚本任务在浏览器化任务完成之前尝试调用。所以我得到这个输出:
$ gulp
[10:40:26] Using gulpfile ~/projects/map2/gulpfile.js
[10:40:26] Starting 'default'...
[10:40:26] Starting 'browserify'...
[10:40:26] Finished 'browserify' after 7.84 ms
[10:40:26] Starting 'scripts'...
[10:40:26] Finished 'scripts' after 4.58 ms
[10:40:26] Finished 'default' after 14 ms
[10:40:26] gulp-notify: [Gulp notification] templates build ended
[10:40:26] gulp-notify: [Gulp notification] browserify ended
并且scripts
任务不会创建 build.js 文件(请注意,通知插件中没有消息"脚本构建结束")。
我自己想通了。为了实现这一点,应该有一些来自任务的关于完成工作的信号。有关详细信息,请查看此文章。实际上我选择像这样返回流:
gulp.task('browserify', function (cb) {
var stream = gulp.src('src/js/clientAppControl.js')
.pipe(browserify({
insertGlobals: false,
debug: false
}))
.pipe(gulp.dest('build'))
.pipe(notify({ message: 'browserify ended' }));
return stream;
});
并且依赖项开始正常工作。
与您
添加的答案类似,但在我看来更干净一点,是删除return stream
并将var stream =
替换为return
。
gulp.task('browserify', function (cb) {
return gulp.src('src/js/clientAppControl.js')
.pipe(browserify({
insertGlobals: false,
debug: false
}))
.pipe(gulp.dest('build'))
.pipe(notify({ message: 'browserify ended' }));
});
相关文章:
- 当使用Watchify时,Browserify+Babelify Gulp任务没有终止
- 如何在Gulp任务中拆分文件
- 多个 js 库的 Gulp 任务以及适当的名称
- 如何按特定顺序运行 Gulp 任务
- 如何在GULP任务中循环传递数组
- 创建Gulp任务但不起作用,为什么
- 如何通过Gulp任务增加版本号
- 如果满足条件,停止Gulp任务
- Gulp任务似乎运行了两次,而不是一次
- 如何删除失败Gulp任务的调用堆栈
- 将字符串作为参数传递给 gulp 任务
- 在使用 GULP 任务将所有 JS 连接到单个 JS 文件中时,在 AngularJS 中出错
- 仅对 Gulp 任务中文件夹中的文件子集使用 Browserify
- 如何使 Gulp 任务将项目的每个 jsx 文件转换为不同的.js文件
- 在 gulp 任务中使用 node.js 函数
- 如何在 Gulp 任务中间添加 CSS 文件.js
- 从其他 Gulp 任务中吞噬任务
- 一个 Gulp 任务中的多个同步流
- 在 Gulp 任务中更改 bowerFiles() 注入路径
- Gulp 任务在无限循环中运行