我想尝试Gulpjs,因为它看起来非常快。我无法理解如何在Gulpjs中翻译以下(部分)Gruntjs配置。
基本上,目的是 uglify项目文件加上一些外部依赖(尚未缩小)并预先添加一些已经缩小的依赖,以避免已经缩小的缩小过程源。
uglify: {
dist: {
src: [
'<%= deps %>/bootstrap-daterangepicker/daterangepicker.js',
'<%= deps %>/smalot-bootstrap-datetimepicker/js/locales/*.js',
'src/js/**/*.js',
],
dest: '<%= clean.dist %>/js/<%= pkg.name %>.min.js'
}
},
concat: {
dist: {
src: [
'<%= deps %>/jquery/dist/jquery.min.js',
'<%= deps %>/bootstrap/dist/js/bootstrap.min.js',
'<%= deps %>/momentjs/min/moment-with-langs.min.js',
'<%= uglify.dist.dest %>'
],
dest: '<%= uglify.dist.dest %>'
}
},
我怎么能在Gulpjs做同样的事情?这甚至可能吗?
现在我的任务(不工作,结果只是jquery.min.js
的内容)看起来像:
gulp.task('uglify', function() {
gulp.src([
'./bower_components/bootstrap-daterangepicker/daterangepicker.js',
'./bower_components/smalot-bootstrap-datetimepicker/js/locales/*.js',
'./src/js/**/*.js'
])
.pipe(uglify())
.pipe(concat('admin-template.js'))
.pipe(gulp.dest('./dist/js'));
});
// Doesn't work
gulp.task('concat', ['uglify'], function () {
gulp.src([
'bower_components/jquery/dist/jquery.min.js',
'./dist/js/admin-template.js' // output of uglify task
])
.pipe(concat('admin-template.js'))
.pipe(gulp.dest('./dist/js/'));
});
答案 0 :(得分:1)
如果您希望“concat”任务依赖于“uglify”任务成功完成,则需要从“uglify”任务返回流(或使用another method)。
无论哪种方式,你当然应该简化这一点。
您可以查看此other SO thread的想法。我可能会使用gulp-if或event-stream。
请看一下这里:https://github.com/gulpjs/gulp/blob/master/docs/recipes/using-multiple-sources-in-one-task.md