Не удается перезаписать переменную SASS! по умолчанию?

Я использую Gulp gulp-ruby-sass для создания файлов CSS. Я не могу перезаписать переменные в open-sans.scss. Вот код:

gulpfile.js

gulp.task('css', function () {
    return gulp.src(['app/assets/_variables.scss','app/assets/vendor/open-sans-fontface/open-sans.scss'])
        .pipe(sass())
        .on('error', function (err) { console.log(err.message); })
        .pipe(gulp.dest('public/css'));
});

приложение/активы/_variables.scss

$OpenSansPath: "/fonts";

app/assets/vendor/open-sans-fontface/sass/_variables.scss

@import "sass/variables";
@import "sass/mixins";
@import "sass/Light";
@import "sass/LightItalic";
@import "sass/Regular";
@import "sass/Italic";
@import "sass/Semibold";
@import "sass/SemiboldItalic";
@import "sass/Bold";
@import "sass/BoldItalic";
@import "sass/ExtraBold";
@import "sass/ExtraBoldItalic";

app/assets/vendor/open-sans-fontface/sass/_variables.scss

$OpenSansPath: "./fonts" !default;
$OpenSansVersion: "1.1.0" !default; 

person AlGallaf    schedule 29.12.2014    source источник


Ответы (1)


Создайте файл main.scss следующим образом:

@import "app/assets/vendor/open-sans-fontface/open-sans.scss";
@import "app/assets/_variables.scss";

Затем обновите массив ваших файлов, чтобы включить только основной файл:

gulp.task('css', function () {
    return gulp.src(['app/assets/main.scss'])
        .pipe(sass())
        .on('error', function (err) { console.log(err.message); })
        .pipe(gulp.dest('public/css'));
});
person Rupert    schedule 29.12.2014
comment
Но почему вы думаете, что код, который я разместил выше, не работает? Это из-за синтаксиса? - person AlGallaf; 29.12.2014
comment
Скорее всего, ваша html-страница загружает создаваемые файлы css. Использование такого main.scss очень распространено и оставляет вам только один файл .css. - person Kelly J Andrews; 30.12.2014