簡體   English   中英

gulp-ruby-sass錯誤:必須提供模式

[英]gulp-ruby-sass Error: must provide pattern

這是我的目錄結構:

這里

我設置了我的工作站,並設置了我的Gulp文件以處理我的文件夾格式,但它無法正常工作。

這是我的Gulp文件:

var gulp      = require('gulp'),
    sass        = require('gulp-ruby-sass'),
    imagemin    = require('gulp-imagemin'),
    changed     = require('gulp-changed'),
    browserSync = require('browser-sync'),
    livereload = require('gulp-livereload'),    
    gp_concat = require('gulp-concat'),
    gp_rename = require('gulp-rename'),
    gp_uglify = require('gulp-uglify'),
    watch = require('gulp-watch');


gulp.task('sass', function () {
  gulp.src('./app/template/css/style_v1.scss')
    .pipe(sass())
    .on('error', function (err) { console.log(err.message); })
    .pipe(gulp.dest('./dist/css'))
    .pipe(livereload());
});

gulp.task('compress', function() {
  gulp.src('./app/*.js')
   .pipe(gp_concat('concat.js'))
        .pipe(gulp.dest('dist'))
        .pipe(gp_rename('script.min.js'))
        .pipe(gp_uglify())
        .pipe(gulp.dest('./dist/js'));
});

gulp.task('jpg', function() {
    gulp.src('./template/img/**/*.*')
        .pipe(changed('./dist/img/'))
        .pipe(imagemin({
            progressive: true
        }))
        .pipe(gulp.dest('./dist/img/'));
});

gulp.task('browser-sync', function() {
    browserSync.init(['./dist/css/**', 'index.php'], {
        server: {
            baseDir: './',
            index: 'index.php'
        }
    });
});

gulp.task('watch', ['sass', 'browser-sync','compress'], function () { 
    return watch('./app/template/css/style_v1.scss', function () {
        gulp.src('./app/template/css/style_v1.scss')
            .pipe(gulp.dest('build'));
    });
});

當我運行gulp watch它會返回:

(node:6668) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
[08:42:23] Using gulpfile /var/www/html/evandro/sistema_metas/gulpfile.js
[08:42:23] Starting 'sass'...
[08:42:23] 'sass' errored after 7.09 ms
[08:42:23] Error: must provide pattern

問題是什么?

我有另一個代碼,CSS Watch不起作用,只看HTML,它有什么用?

gulp-ruby-sass與其他gulp插件的工作方式不同。 你沒有把它傳遞給.pipe() 如果您查看文檔,則說明以下內容:

使用gulp.src -ruby-sass 而不是gulp.src來編譯Sass文件。

這意味着你必須像這樣使用它:

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

gulp.task('sass', function () {
  return sass('./app/template/css/style_v1.scss')
    .on('error', function (err) { console.log(err.message); })
    .pipe(gulp.dest('./dist/css'))
    .pipe(livereload());
});

或者你可以使用gulp-sass插件而不是gulp-ruby-sass 它不使用SASS的Ruby實現,而是使用C實現(libsass)。 它允許你像往常一樣使用.pipe()對大多數其他gulp插件:

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

gulp.task('sass', function () {
  return gulp.src('./app/template/css/style_v1.scss')
    .pipe(sass())
    .on('error', function (err) { console.log(err.message); })
    .pipe(gulp.dest('./dist/css'))
    .pipe(livereload());
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM