lau*_*kok 2 javascript css asynchronous less gulp
我如何告诉Gulp先在另一个任务之前执行任务?
例如,我需要先将.less文件压缩成.css,
// Crunch less into css.
gulp.task('less', function () {
return gulp.src([
'css/myless.less'
])
.pipe(less().on('error', function (err) {
console.log(err);
}))
.pipe(cssmin().on('error', function(err) {
console.log(err);
}))
.pipe(rename({suffix: '.less'}))
.pipe(gulp.dest('css/'));
});
Run Code Online (Sandbox Code Playgroud)
然后用其他普通的.css文件连接它,
var concat = require('gulp-concat'),
minifyCSS = require('gulp-minify-css'),
clean = require('gulp-clean');
// CSS concat, auto-prefix and minify
gulp.task('styles', function() {
gulp.src([
'css/myless.less.css',
'css/normal.css'
])
.pipe(concat('main.css'))
.pipe(minifyCSS())
.pipe(gulp.dest('css/'));
});
Run Code Online (Sandbox Code Playgroud)
运行任务,
gulp.task('default', ['less', 'styles'], function() {
})
Run Code Online (Sandbox Code Playgroud)
它只优化'css/normal.css',但不能与'css/myless.less.css'连接.
我该怎么办?
您的styles任务应该依赖于less等待其完成的人.做你做的将并行运行这两个任务.
您可以在gulpfile的每个任务上指定一个依赖任务数组:
gulp.task('styles', ['less'], function () {
Run Code Online (Sandbox Code Playgroud)
然后你的default任务应该是这样的:
gulp.task('default', ['styles']);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4634 次 |
| 最近记录: |