【发布时间】:2014-04-21 23:00:46
【问题描述】:
我在使用 gulp.watch 检查我的 .scss 和图像文件的更改时遇到问题。它仅在我创建或编辑 JavaScript 文件时有效,因此“监视”有效,但仅适用于 JavaScript 文件。这是我的代码:
var gulp = require('gulp'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify'),
rename = require('gulp-rename'),
compass = require('gulp-compass'),
minifyCSS = require('gulp-minify-css'),
imagemin = require('gulp-imagemin'),
notify = require('gulp-notify'),
clean = require('gulp-clean'),
filesize = require('gulp-filesize');
gulp.task('scripts', function() {
return gulp.src('src/js/*.js')
.pipe(concat('main.js'))
.pipe(gulp.dest('build/dev/js'))
.pipe(filesize())
.pipe(uglify())
.pipe(gulp.dest('build/production/js'))
.pipe(filesize())
.pipe(notify({ message: 'JavaScript task complete' }));
});
gulp.task('compass', function() {
return gulp.src(['src/sass/**/*.scss'])
.pipe(compass({
css: 'src/css',
sass: 'src/sass',
image: 'src/images'
}))
.pipe(gulp.dest('build/dev/css'))
.pipe(minifyCSS())
.pipe(gulp.dest('build/production/css'))
.pipe(notify({ message: 'Compass task complete' }));
});
gulp.task('images', function() {
return gulp.src('src/images/**/*')
.pipe(imagemin({ optimizationLevel: 5, progressive: true, interlaced: true }))
.pipe(gulp.dest('build/dev/img'))
.pipe(gulp.dest('build/production/img'))
.pipe(notify({ message: 'Images task complete' }));
});
gulp.task('watch', function() {
gulp.watch('src/js/*.js', ['scripts']);
gulp.watch('src/sass/**/*.scss', ['compass']);
gulp.watch('src/images/**/*', ['images']);
});
gulp.task('clean', function() {
return gulp.src(['build/*'], {read: false})
.pipe(clean());
});
gulp.task('default', ['clean'], function () {
gulp.start('scripts', 'compass', 'images', 'watch');
});
所有任务在“默认”调用时都按预期运行。
【问题讨论】:
-
gulp-compass 似乎不支持“观看”。
-
我刚刚意识到,如果我评论'指南针'任务的最后三行,手表功能结合'指南针'任务可以完美运行。很奇怪。
标签: compass-sass gulp