2014-05-23 17 views
7

Próbuję uruchomić zadanie gulp, aby skompilować mój projekt sass, ale ponieważ tworzę podfolder app/assets/i umieszczam w nim moje pliki źródłowe, mam problem. Wcześniej, gdy folder sass i css znajdował się w tym samym katalogu, co mój plik gulp, działał idealnie. A jeśli uruchomię polecenie kompasu w moim katalogu bazowym, nie mam problemu, to tylko z gulp-compass.Błąd Gulp z gulp-compass: Musisz skompilować poszczególne arkusze stylów z katalogu projektu

Wyjście:

Devnco: /Users/Devnco/Web/maquette ->gulp sass 
[gulp] Using gulpfile ~/Web/maquette/gulpfile.js 
[gulp] Starting 'sass'... 
[gulp] Finished 'sass' after 6.12 ms 
[gulp] You must compile individual stylesheets from the project directory. 
[gulp] Plumber found unhandled error: [gulp] Error in plugin 'gulp-compass': Compass failed 
[gulp] You must compile individual stylesheets from the project directory. 
[gulp] Plumber found unhandled error: [gulp] Error in plugin 'gulp-compass': Compass failed 
[gulp] You must compile individual stylesheets from the project directory. 
[gulp] Plumber found unhandled error: [gulp] Error in plugin 'gulp-compass': Compass failed 

Moi gulpfile.js:

var paths = { 
    css: './app/assets/css', 
    sass: './app/assets/sass/*.scss', 
    js: './app/assets/js', 
    images: './app/assets/images' 
} 

gulp.task('sass',function(){ 

    gulp.src(paths.sass) 
     .pipe(plumber()) 
     .pipe(compass({ 
      css: paths.css, 
      sass: paths.sass 
     })) 
     .pipe(gulp.dest(paths.css)) 
     .pipe(minifyCss()) 
     .pipe(rename({ extname: '.min.css'})) 
     .pipe(gulp.dest(paths.css)); 
}); 

Mój katalog roboczy:

gulpfile.js 
app/ 
    assets/ 
     fonts/ 
     images/ 
     sass/ 
     css/ 
    pages/ 
     etc… 

A moja package.json z wersjami, które używam (Ostatnia)

"devDependencies": { 
    "gulp": "^3.6.2", 
    "gulp-compass": "^1.1.9", 
    "gulp-concat": "^2.2.0", 
    "gulp-minify-css": "^0.3.4", 
    "gulp-plumber": "^0.6.2", 
    "gulp-rename": "^1.2.0" 
} 

Zrobiłem kilka wyszukiwań, ale nadal nie można znaleźć, gdzie jest problem.

Z góry dziękuję.

Odpowiedz

1

I wykorzystać to do kompilowania mój plik kompasu i działa dobrze, to przychodzi z docs łyk-kompas

jeśli nie używasz config.rb

var compass = require('gulp-compass'), 
    path = require('path'); 

gulp.task('compass', function() { 
    gulp.src('./src/*.scss') 
    .pipe(compass({ 
    project: path.join(__dirname, 'assets'), 
    css: 'css', 
    sass: 'sass' 
    })) 
    .pipe(gulp.dest('app/assets/temp')); 
}); 

jeśli używasz conf ig.rb

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

gulp.task('compass', function() { 
    gulp.src('./src/*.scss') 
    .pipe(compass({ 
    config_file: './config.rb', 
    css: 'stylesheets', 
    sass: 'sass' 
    })) 
    .pipe(gulp.dest('app/assets/temp')); 
}); 
+0

Czy pozostawiasz __deks tak dokładnie, jak jest? Czy jest to aktualizowane z twoją własną nazwą katalogu? – davidpauljunior

1

Ja też miałem ten problem dzisiaj wieczorem. Naprawiłem to, zmieniając moją ścieżkę config.rb. Sekcja spróbować

.pipe(compass({ 
    config_file: './config.rb', 
    css: paths.css, 
    sass: paths.sass 
})) 

Jeśli nie masz/chcesz użyć config.rb wierzę trzeba ustawić korzeń projekt jak w „config obciążenie bez config.rb” od https://www.npmjs.org/package/gulp-compass

0

miałem ten problem, a także, okazało się, że ścieżka projekt musi wskazywać do folderu, który zawiera folder z CSS, SCSS. Na przykład:

app/
    - src/
     - css/
     - sass/

Biorąc powyższe pod uwagę strukturę, twój config powinien wyglądać następująco:

mam ten błąd, gdy moja ścieżka projekt był o jeden poziom wyżej, dzięki czemu mój css nieruchomość wyglądać następująco: "src/css"

Powiązane problemy