2015-02-05 5 views
1

У меня нет сомнений, что у других это работает ... Я просто не совсем понял, как сейчас.Libsass with Susy не работает + Gulp

Глоток

var gulp = require('gulp'); 
var sass = require('gulp-sass'); 
var handleErrors = require('../util/handleErrors'); 
var sourcemaps = require('gulp-sourcemaps'); 
var minifyCSS = require('gulp-minify-css'); 

gulp.task('sass', function() { 
    return gulp.src('./frontend/sass/style.scss') 
     .pipe(sourcemaps.init()) 
     .pipe(sass({ 
      'require':'susy' 
     })) 
     //.pipe(minifyCSS()) 
     .pipe(sourcemaps.write('./app/www/css')) 
     .on('error', handleErrors) 
     .pipe(gulp.dest('./app/www/css')) 
}); 

Sass

@import "susy"; 

Глоток Запуск

[23:58:08] Starting 'sass'... 

stream.js:94 
     throw er; // Unhandled stream error in pipe. 
      ^
Error: file to import not found or unreadable: susy 
Current dir: C:/var/www/rnli.hutber.com/frontend/sass/ 

Я установил [email protected] в корень вдоль стороны gulp файла со следующим: gem install susy

текущей рабочей установкой с глотком-рубинового дерзости

я тем не менее он работает, что подтверждает, что суперсимметрия работает через драгоценный камень установлен с следующий код:

var gulp = require('gulp'); 
var sass = require('gulp-ruby-sass'); 
var handleErrors = require('../util/handleErrors'); 
var minifyCSS = require('gulp-minify-css'); 

gulp.task('sass', function() { 
    return gulp.src('./frontend/sass/style.scss') 
     .pipe(sass({ 
      'sourcemapPath':'./app/www/css', 
      'require':'susy' 
     })) 
     //.pipe(minifyCSS()) 
     .on('error', handleErrors) 
     .pipe(gulp.dest('./')) 
}); 

ПРИМЕЧАНИЕ Приведенный выше код не будет работать, используя [email protected]' It will only work as I can tell with v0.7.1`

package.json

"devDependencies": { 
    "gulp": "~3.8.10", 
    "gulp-sass": "~1.3.2", 
    "gulp-ruby-sass": "~0.7.1", 
    "gulp-sourcemaps": "~1.3.0", 
    "susy":"~2.2.1" 
    } 

Как получить susy работает правильно и может компилировать в css?

+0

Не прямо по теме, но, возможно, полезно, я получил [susy и libsass, работающие с ember-cli] (https://github.com/ericam/susy/pull/406#issuecomment-69874891). – steveax

ответ

4

мне удалось получить сУсИ работы с libsass (проглатывать-дерзость)

Глоток-дерзость должен знать, где найти файлы, указанные с @import директивы. Вы можете попробовать установить опцию includesPath в gulp-sass, чтобы указать на вашу местную копию susy.

Как я установил сУсИ с дачей, у меня есть что-то вроде этого:

var sass = require('gulp-sass'); 

gulp.task('sass', function() { 
    return gulp.src(config.src) 
    .pipe(sass({ 
     includePaths: [ 
     'bower_components/susy/sass' 
     ] 
    })) 
    ... 
}); 
+0

Возможно, мне нужно использовать его с Bower, но это кажется очень логически imo :). Я использую аналогичную настройку и пытаюсь включить ее из моего пакета узлов. Однако мой файл называется '_susy.scss'. Поэтому я подумал, что мне нужно изменить @import на' _susy'. Моя настройка проекта похожа на это: 'node_modules¬susy¬sass', поэтому я выполнил это с помощью моего' gulp.js', находящегося в корне. 'loadincludePaths: [ \t \t \t \t './node_modules/susy/sass//' \t \t \t]' Умм Мне нравится идея, однако ... Я просто не могу заставить его работать. –

+0

Частицы Sass имеют префикс с подчеркиванием, поэтому в случае '_susy.scss' вы все равно будете использовать' @import "susy"; '. Помните, что опция для gulp-sass для включения пути - 'includePaths', а не' loadincludePaths'. Может быть, создать цель вашей цели глотки во всей ее полноте? –

+0

Мой плохой, я на самом деле не делал включение с «_susy», я считаю, что если бы у меня было это, было бы ошибкой сказать, что он не может найти подозреваемого. Действительно, переход на includePaths был тем, что заставило его работать на меня до сих пор. если вы прочтете комментарии по другому ответу, вы увидите, где я сейчас. –

1

Я была такая же проблема, но с Грантом вместо Глоток.

Вы можете использовать полный путь для susy.

Сначала узнайте, где установлены ваши драгоценные камни (gem env, и найдите GEM PATHS; в моем случае они где в /Library/Ruby/Gems/2.0.0).

И тогда в вашем style.scss файл вместо @import susy вы делаете:

@import "/Library/Ruby/Gems/2.0.0/gems/susy-2.2.2/sass/susy"; 

(Заменить 2.2.2 для вашей версии суперсимметрии, но если вы собираетесь использовать libsass вы должны использовать что-то совсем в на сегодняшний день, и вам придется изменить эту строку при обновлении ...)

Не такая элегантная, но небольшая цена для оплаты использования libsass.

Update: Если поставить includePaths: ['/Library/Ruby/Gems/2.0.0/gems/susy-2.2.2/sass'] в вашей Глоток задачи вы можете уйти с просто «@import susy;», хотя вы просто переместил untidyness где-то в другом месте.

Скорее всего, это возможно сделать с помощью Bower, как объяснено в другом ответе здесь, и установить локальную установку susy для проекта; но поскольку я еще не использую беседу (позор на мне), я просто использую глобальную копию для всех моих проектов.

+0

Это заставило меня пройти подозрительную ошибку ... наверняка ... Однако, когда я начал хотеть использовать susy mixins, например '@include span', он не узнал бы span ... Который я действительно нахожу странным. –

+0

Это странно. Не могли бы вы указать свой точный импорт и точную ошибку, пожалуйста? – yivi

+0

Внутри 'style.sccs 'Я использую: @import" susy "; внутри моего файла gulp 'includePaths: ['./node_modules/susy/sass']' Первая ошибка из '@include border-box-sizing;' Error 'Error: no mixin с именем border-box-sizing' –

 Смежные вопросы

  • Нет связанных вопросов^_^