任务'sass'不在你的gulpfile中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了任务'sass'不在你的gulpfile中相关的知识,希望对你有一定的参考价值。

我用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'定义了一个任务。我错过了什么?

答案

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

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']);
另一答案

我想到了:

'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']);
});
另一答案

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

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

enter image description here

另一答案
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'。我更改了名称并删除了默认任务。

以上是关于任务'sass'不在你的gulpfile中的主要内容,如果未能解决你的问题,请参考以下文章

markdown SASS'&'运营商

vue 爬坑之路---can't resolve 'sass-loader'

ERROR in Cannot find module 'node-sass'(已解决

gulp.watch的两种使用方法

带有 Compass 和 Sass 的 Shopify 主题

Error: Cannot find module 'gulp-sass'