关于我的gulpfile.js设置,我有几个问题。
这是我的gulp文件设置:
var gulp = require('gulp');
var sass = require('gulp-sass');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var preserveFirstComment = function() {
var set = false;
return function() {
if (set) return false;
set = true;
return true;
};
};
gulp.task('styles', function() {
return gulp.src('./sass/**/*.scss')
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest('./css/'));
});
gulp.task('styles:watch', function() {
gulp.watch('sass/**/*.scss',['styles']);
});
gulp.task('uglify', function() {
gulp.src('lib/marked.js')
.pipe(uglify({preserveComments: preserveFirstComment()}))
.pipe(concat('marked.min.js'))
.pipe(gulp.dest('.'));
});
gulp.task('default', ['uglify']);
一旦我尝试使用gulp运行我的项目,它所做的就是运行下面的这5行,然后停止并返回到命令行提示符。我不明白为什么会这样。我是使用gulp的初学者,因为这只是我用来设置项目的教程的基本设置。
C:\Users\Gemini\Documents\workspace\ca_>gulp
[20:28:16] Using gulpfile ~\Documents\workspace\ca_\Gulpfile.js
[20:28:16] Starting 'uglify'...
[20:28:16] Finished 'uglify' after 21 ms
[20:28:16] Starting 'default'...
[20:28:16] Finished 'default' after 13 μs
C:\Users\Gemini\Documents\workspace\ca_>
答案 0 :(得分:2)
当您只在命令行输入gulp
时,Gulp会执行default
任务,在您的情况下,该任务取决于uglify
任务,而不是styles:watch
。这就是为什么你只在Gulp的输出中看到uglify
和default
的原因。
如果你想执行styles:watch
任务,你必须明确地告诉Gulp:
C:\Users\Gemini\Documents\workspace\ca_> gulp styles:watch
答案 1 :(得分:0)
要添加上述Sven的答案,您可以添加许多Gulp任务以开始在gulp watch
命令上观看。
gulp.task('watch', function() {
gulp.watch('./css/', ['styles']);
gulp.watch('.', ['uglify']);
// more watch things here
});
答案 2 :(得分:0)
要运行gulp任务,使用的命令是gulp <TASK NAME>
,当我们只运行gulp
时,运行默认任务。如果未定义默认任务,则会显示错误,提及Task 'default' is not in your gulpfile
。
在这种情况下,gulp运行默认任务'uglify',这就是您无法观察SASS中的更改的原因。要查看SASS中的更改,您可以将默认任务修改为:
gulp.task('default', ['uglify', 'styles:watch']);
这会帮助你。