Gulp sass не компилирует цикл for с тегом #{$i}

Возникла проблема с Gulp sass, он не компилирует мой файл.

Unknown word You tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser

CSS-код:

@for $i from 1 through 12 {
    .col-#{$i} {
        -ms-flex-preferred-size: (100% / 12) * $i;
        -webkit-flex-basis: (100% / 12) * $i;
        flex-basis: (100% / 12) * $i;
        max-width: (100% / 12) * $i;
    }
}

Глоток кода:

gulp.task( 'sass', function() {
    return gulp.src( SOURCEPATHS.sassSource )
        .pipe( autoprefixer({ browsers: ['last 2 versions']} ) )
        .pipe( sass({ includePaths: ['node_modules'] }, { outputStyle: 'compressed' }).on('error', sass.logError) )
        .pipe( mmq({ log: false }) )
        .pipe( cssmin() )
        .pipe( rename({suffix: '.min'}) )
        .pipe( gulp.dest(APPPATH.css) );
});

Ошибка с этим тегом #{$я} - без этого - gulp скомпилирует css файл.

Может быть проблема? Я много читал о gulp-postcss - и попробовал с ним, но результат тот же - ОШИБКА

Ошибка довольно ясна. Запустите autoprefixer и другие плагины postcss после sass.

TheDancingCode 24.04.2019 11:16

Спасибо - проблема решена. Вы можете отправить свой ответ.

Kintamasis 24.04.2019 11:23
Настройка шаблона Metronic с помощью Webpack и Gulp
Настройка шаблона Metronic с помощью Webpack и Gulp
Я пишу эту статью, чтобы поделиться тем, как настроить макет Metronic с помощью Sass, поскольку Metronic предоставляет так много документации, и они...
0
2
316
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
.pipe( autoprefixer({ browsers: ['last 2 versions']} ) )

Необходимо установить после дерзкий

Согласно комментарию @TheDancingCode, исправление для меня состояло в том, чтобы запустить AutoPrefixer после SASS.

"Запускать autoprefixer и другие плагины postcss после sass"

gulp.task("sass", function () {
    return gulp.src([`${paths.scss}**/*.scss`, `!${paths.scss}vendor/**/*`])
        .pipe(sourcemaps.init())
        .pipe(sass.sync().on('error', sass.logError))
        .pipe(autoprefixer())
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest(paths.contentRoot));

Теперь это кажется мне очевидным, поскольку SASS может применять переменные к значениям свойств. Если это так, они могут содержать значения, которые могут нуждаться в префиксе поставщика. Отсюда требование.

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