gulp-sass не дает результата

Я пытаюсь использовать gulp и gulp-sass для компиляции компонентов Bower в моем проекте. Я использую Windows 8.

У меня проблема в том, что gulp-sass, похоже, не работает. Или, по крайней мере, не давая мне результат компиляции. Самое странное в этом то, что я даже не получаю сообщения об ошибках или что-то в этом роде.

Я просто не получаю никакого результата в моем выходном каталоге.

gulpfile.js:

"use strict";

var gulp = require("gulp"),
    sass = require("gulp-sass"),
    bowerFiles = require("main-bower-files"),
    gulpFilter = require("gulp-filter"),
    concat = require("gulp-concat");


gulp.task("bower", function () {
    var cssFilter = gulpFilter(["**/*.css", "**/*.scss"]);

    return gulp.src(bowerFiles())
        .pipe(cssFilter)
        .pipe(sass())
        .pipe(concat("bower.css"))
        .pipe(gulp.dest("wwwroot"))
        .pipe(cssFilter.restore());
});

Я пробовал несколько вещей до сих пор:

Я попытался скомпилировать через командную строку с помощью команды

sass --trace bower_components\bootstrap-sass-pfficial\assets\stylesheets\_bootstrap.scss:wwwroot\bower.css

это сработало, и я получил ожидаемый результат. Поэтому я предполагаю, что установка sass работает нормально.

Еще одна вещь, которую я пробовал, это удаление строки «.pipe(sass())» из приведенного выше кода, чтобы просто объединить и скопировать файлы. Это сработало.

И третий тест заключался в том, чтобы не использовать main-bower-files для получения файлов, а использовать фиксированный путь с sass:

gulp.src("bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap.scss")

Но и это не сработало. Опять никакого результата.

Я использую следующие зависимости:

"dependencies": {
    "gulp": "^3.6.0",
    "gulp-sass": "^1.3.3",
    "main-bower-files": "^2.6.2",
    "gulp-filter": "^2.0.2",
    "gulp-concat": "^2.5.2"
}

person fbrthld    schedule 15.03.2015    source источник
comment
Что произойдет, если вы удалите все остальные плагины и просто gulp-src один файл и gulp-dest его в wwwroot ?   -  person Nick Tomlin    schedule 15.03.2015
comment
@NickTomlin, который просто копирует, как и ожидалось gulp.src("bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap.scss") .pipe(gulp.dest("wwwroot"));   -  person fbrthld    schedule 15.03.2015
comment
Так вы говорите, что это сработало, верно? Я предполагаю, что это что-то с gulp-filter. Я лично предпочитаю просто полагаться на встроенный в gulp глобус и иметь отдельные задачи для каждого типа ресурсов, вместо того, чтобы пытаться выполнить их все в одной задаче.   -  person Nick Tomlin    schedule 15.03.2015
comment
@NickTomlin да, код, который я разместил, сработал. но как только я пытаюсь скомпилировать scss через .pipe(sass()) он перестает работать. тогда я не получаю никакого выходного файла.   -  person fbrthld    schedule 15.03.2015


Ответы (1)


Наконец я нашел проблему. gulp-sass в версии 1.3.1 введена проверка фильтрации частичных фрагментов путем проверки "_" в начале файла (https://github.com/dlmanning/gulp-sass/commit/3fface49e956297bbd707ce4e148f7e727675417). Из-за этого он не компилирует _bootstrap.scss

person fbrthld    schedule 15.03.2015