Gulp-ruby-sass Ошибка:

Плагин gulp gulp-ruby-sass не работает при компиляции файлов sass.

    "использовать строгое";

    var path = require('path');
    var gulp = require('gulp');
    var conf = require('./conf');

    var browserSync = require('browser-sync');

    var $ = require('gulp-load-plugins')();

    var wiredep = require('wiredep').stream;
    var _ = require('lodash');

    gulp.task('styles-reload', ['styles'], function() {
      вернуть buildStyles()
        .pipe(browserSync.stream());
    });

    gulp.task('styles', function() {
      return buildStyles();
    });

    var buildStyles = function() {
      var sassOptions = {
        стиль: "расширенный"
      };

      var injectFiles = gulp.src([
        path.join(conf.paths.src, '/app/**/*.scss'),
        path.join('!' + conf.paths.src, '/app/index.scss')
      ], { read: false });

      var injectOptions = {
        transform: function(filePath) {
          filePath = filePath.replace(conf.paths.src + '/app/', '');
          return '@import "' + filePath + '";';
        },
        starttag: "// инжектор",
        endtag: '// endinjector',
        addRootSlash: false
      };

      var cssFilter = $.filter('**/*.css', { restore: true });

      возврат gulp.src([
        path.join(conf.paths.src, '/app/index.scss')
      ])
        .pipe($.inject(injectFiles, injectOptions))
        .pipe(wiredep(_.extend({}, conf.wiredep)))
        .pipe($.rubySass(sassOptions)).on('error', conf.errorHandler('RubySass'))).pipe(cssFilter)
        .pipe($.sourcemaps.init({ loadMaps: true }))
        .pipe($.autoprefixer()).on('error', conf.errorHandler('Autoprefixer'))).pipe ($. sourcemaps.write ()).pipe (cssFilter.restore).pipe (gulp.dest (path.join (conf.paths.tmp, '/ serve / app /')));
    };
TypeError: строка шаблона глобуса, необходимая для нового Minimatch (/home/john/sac_srvs/new_srvs/sachin/node_modules/gulp-ruby-sass/node_modules/glob/node_modules/minimatch/minimatch.js:108:11 / home) /john/sac_srvs/new_srvs/sachin/node_modules/gulp-ruby-sass/node_modules/glob/common.js:112:20) в новом GlobSync (/home/john/sac_srvs/new_srvs/sachin/node -moby g) sass/node_modules/glob/sync.js:38:3) в Function.globSync [как синхронизация] (/home/john/sac_srvs/new_srvs/sachin/node_modules/gulp-ruby-sass/node_modules/glob/sync.js:24:10) в /home/john/sac_srvs/new_srvs/sachin/node_modules/gulp-ruby-sass/index.js:68:21 в Array.forEach (родной) в Object.gulpRubySass (/home/john/sac_srvs/new_srvs/sachin/node_modules/gulp-ruby-sass/index.js:67:10) в buildStyles (/home/john/sac_srvs/new_srvs/sachin/gulp/styles.js:50:13) в Gulp.sassOptions.style (/home/john/sac_srvs/new_srvs/sachin/gulp/styles.js:20:10) в module.exports (/home/john/sac_srvs/new_srvs/sachin/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:34:7) в Gulp.Orchestrator._runTask (/home/john/sac_srvs/new_srvs/sachin/node_modules/gulp/node_modules/orchestrator/index.js:273:rche) в Gulp.._runStep (/home/john/sac_srvs/new_srvs/sachin/node_modules/gulp/node_modules/orchestrator/index.js:214:10) в Gulp.Orchestrator.start (/home/john/sac_srvs/new_ss gulp/node_modules/orchestrator/index.js:134:8) в /usr/local/lib/node_modules/gulp/bin/gulp.js:129:20 в process._tickCallback (node.js:415:13) в функции.Module.runMain (module.js:499:11)

1 ответ

Решение

Это хитрый. Похоже, вы используете generator-gulp-angular и выбрал ruby-sass, К сожалению, API gulp-ruby-sass изменился в сентябре (с выпуском 2.0.0) и с тех пор генератор не обновлялся. В двух словах: новому API нужны исходные файлы, переданные в метод фабрики потоков .pipe($.rubySass([**SOURCE FILES HERE**], sassOptions)).on('error', conf.errorHandler('RubySass')) что в принципе невозможно при объединении цепочки сборки с другими плагинами, такими как inject или же wiredep, Я рекомендую использовать node-sass вместо этого - если у вас нет абсолютной необходимости ruby-sass конечно.

Другие вопросы по тегам