任务'sass'不在你的gulpfile中

问题描述 投票:1回答:4

我用npm安装了gulp和gulp-sass。

关于github上gulp和gulp-sass的例子,我创建了这个简单的gulpfile:

var gulp = require('gulp') ;
var sass = require('gulp-sass') ;

gulp.task('default', function() {

    gulp.task('sass', function () {
        gulp.src('./sass/**/*.scss')
            .pipe(sass().on('error', sass.logError))
            .pipe(gulp.dest('./css'));
    });

    gulp.task('sass:watch', function () {
        gulp.watch('./sass/**/*.scss', ['sass']);
    });

}) ;

如果我运行'gulp'那么没有任何事情发生 - 正如预期的那样。我回来了

[00:20:20] Using gulpfile ~/wa/myproj/gulpfile.js
[00:20:20] Starting 'default'...
[00:20:20] Finished 'default' after 64 μs

这一切都很好,花花公子。

但是,当我运行'gulp sass'时,我会回来:

[00:21:38] Using gulpfile ~/wa/myproj/gulpfile.js
[00:21:38] Task 'sass' is not in your gulpfile
[00:21:38] Please check the documentation for proper gulpfile formatting

我显然已经为'sass'定义了一个任务。我错过了什么?

gulp frontend gulp-sass
4个回答
2
投票

它可能没有调用,因为它是默认的函数,默认情况下默认需要调用其他函数。

var gulp = require('gulp');
var sass = require('gulp-sass');
gulp.task('sass', function(){
    gulp.src('./sass/**/*.scss')
        .pipe(sass())
        .pipe(gulp.dest('./css'));
});
gulp.task('watch', function(){
    gulp.watch('./sass/**/*.scss',['sass']);
});
gulp.task('default', ['sass','watch']);

1
投票

我想到了:

'sass'任务包含在'default'任务中。

这有效:

var gulp = require('gulp') ;
var sass = require('gulp-sass') ;

gulp.task('default', function() {

}) ;

gulp.task('sass', function () {
    gulp.src('./sass/**/*.scss')
        .pipe(sass().on('error', sass.logError))
        .pipe(gulp.dest('./css'));
});

gulp.task('sass:watch', function () {
    gulp.watch('./sass/**/*.scss', ['sass']);
});

1
投票

当我使用gulp scss命令时,我遇到了同样的问题“任务'sass'不在你的gulpfile中”。

但是当我的朋友在命令提示符下运行gulp css命令时,它通过更新CSS文件正常工作。请看下面的图片,我希望这对你有帮助。

enter image description here


0
投票
var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('sass', function(){
    gulp.src('./scss/**/*.scss')
        .pipe(sass())
        .pipe(gulp.dest('./css'));
});

gulp.task('watch', function(){
    gulp.watch('./scss/**/*.scss',['sass']);
});

这适合我。试试看。但我不得不说My SASS文件夹的名字是'scss'。我更改了名称并删除了默认任务。

© www.soinside.com 2019 - 2024. All rights reserved.