吞咽不正常

时间:2016-03-29 18:44:18

标签: sass gulp

关于我的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_>

链接:Getting Started with Gulp

3 个答案:

答案 0 :(得分:2)

当您只在命令行输入gulp时,Gulp会执行default任务,在您的情况下,该任务取决于uglify任务,而不是styles:watch。这就是为什么你只在Gulp的输出中看到uglifydefault的原因。

如果你想执行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']);

这会帮助你。