2016-01-01 6 views
0

Я пытаюсь перейти от Sass к postCSS и тестировать плагин gulp postcss-simple-vars.gulp postcss-simple-vars throws error at // comments

Я использую Webstorm IDE, который автоматически использует комментарии стиля javascript (//) в .scss-файлах, поэтому мои неблокированные комментарии - это все // комментарии, а не/* * /.

postcss-simple-vars вызывает ошибки во всех // комментариях, даже если параметр silent установлен в true.

Вот мой глоток задача:

gulp.task('postcss', function() { 
    return gulp 
     .src('./styles/sass2/*.scss') 
     .pipe($.postcss(
      [ 
       vars({ 
        silent: true, 
        variables: colors 
       }) 
      ])) 
     .pipe(gulp.dest('./dest')); 

}); 

я упускаю что-то действительно очевидное? Есть ли способ получить postcss-simple-vars, чтобы игнорировать комментарии к стилю?

КАК РЕШИТЬ ЭТО:

Я заменил все комментарии // с/* */комментарии с глотком-замены ($ .Привернуть).

gulp.task('replace-comments', function() { 
    return gulp 
     .src(config.scss) 
     .pipe($.replace(/\/\/.*/g, function(comment){ 

      return '/*' + comment.substring(2) + ('*/'); 
     })) 
     .pipe(gulp.dest('./styles/sass3')); 

}); 

ответ

0

Проблема не в postcss-simple-vars. Это то, что парсер по умолчанию для postcss ожидает стандартный CSS, а комментарии // не являются стандартными: они разбивают парсер.

Чтобы запустить нескомпилированный SCSS с комментариями через postcss, вы должны использовать альтернативный синтаксический анализатор postcss-scss. Документация в этом README и for gulp-postcss должна объяснить, как ее использовать.

+0

Я только что заменил все комментарии ///* */comments: – claireablani