2014-05-16 18 views
7

In realtà sto provando a creare un inghippo di pianificazione per fare cose relative al web, come compilare sass, minificare css, uglify javascript e così via. Ma sto davvero avendo problemi con sass.gulp-sass non sta compilando file sass

Ecco un esempio del mio codice:

gulp.task('compile-sass', function() { 
    gulp.src(buildType+config.path.sass+"/main.sass") 
     .pipe(compass({ 
      css: 'css', 
      sass: 'sass' 
     })) 
    .pipe(gulp.dest(buildType+config.path.css+"/test")); 
}); 

Così sto usando la bussola qui perché ho solo i file * .sass e nessun .scss così gulp-Sass potrebbe non funzionare per me. Pertanto, sto chiedendo se qualcuno potrebbe darmi un suggerimento sul motivo per cui questa attività non funziona. Ecco cosa riporta mia console:

[gulp] Starting 'compile-sass'... 
[gulp] Finished 'compile-sass' after 6.11 ms 
[gulp] You must compile individual stylesheets from the project directory. 


events.js:72 
    throw er; // Unhandled 'error' event 
     ^
[gulp] Error in plugin 'gulp-compass': Compass failed 
at Transform.<anonymous> (/Users/myusername/node_modules/gulp-compass/index.js:37:28) 
at ChildProcess.<anonymous> (/Users/myusername/node_modules/gulp-compass/lib/compass.js:136:7) 
at ChildProcess.EventEmitter.emit (events.js:98:17) 
at maybeClose (child_process.js:753:16) 
at Socket.<anonymous> (child_process.js:966:11) 
at Socket.EventEmitter.emit (events.js:95:17) 
at Pipe.close (net.js:465:12) 

So che non sto usando qualsiasi config.rb, ma due cose: 1) ho trovato alcun esempio di tali file 2) gulp-bussola doc dà esempio senza tale un file quindi presumo sia opzionale

Grazie in anticipo.

+0

Quali sono i valori per 'buildType + config.path.sass' e' buildType + config.path.css'? Sono relativi percorsi dalla radice del progetto, dove si esegue 'gulp'? Riguardo la configurazione, non è la configurazione 'gulp-compass', ma [' compass' confg itself] (http://compass-style.org/help/tutorials/configuration-reference/). Un'altra cosa, Compass aggiunge solo libs a SASS. Di conseguenza, l'abilità di compilare '.sass' e' .scss' non proviene da Compass, ma da SASS stesso, quindi 'gulp-sass' dovrebbe fare il lavoro per te comunque. –

+0

Grazie per la rapida risposta. 'buildType + config.path.sass' è una stringa valida proveniente da un file di configurazione di Json, la sto usando in altre attività nello stesso gulpfile e funziona perfettamente. Quando utilizzo 'gulp-sass' invece di 'bussola' si presenta un altro errore durante la lettura del file (' [gulp] [gulp-sass] stringa sorgente: 4: errore: errore nella lettura dei valori dopo $ gray' e altri come questo). Suppongo che i file '.sass' non siano supportati da gulp-sass ma solo' .scss'. – soenguy

+1

gulp non interessa quale sia l'estensione del file. Usa il parser 'node-sass' che lo fa. Prendi in considerazione l'uso di 'gulp-ruby-sass' come dovrebbe avere il supporto per le estensioni .scss e .sass. Quindi può ridurre i possibili errori per restringere il problema. – SteveLacy

risposta

5

Grazie a SteveLacy sono riuscito a risolvere il problema.

Se si dispone solo di file .sass e no .scss, è necessario utilizzare gulp-ruby-sass anziché gulp-compass o gulp-sass. Ecco un esempio del mio codice di lavoro:

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

gulp.task('compile-sass', function() { 
    gulp.src(path/to/your/sass/folder/main.sass") 
     .pipe(sass()) 
    .pipe(gulp.dest('path/to/your/css/folder)); 
}); 
2

Il modo più semplice e semplice è:

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

gulp.task('styles', function() { 
    gulp.src('sass/*.scss') 
    .pipe(sass({ 
     noCache : true, 
     style : "compact" 
    })) 
    .pipe(gulp.dest('css')); 
}); 
+1

Non intendi "sass/*. Sass''? –

0

So che questo potrebbe non essere il posto giusto per questa risposta, ma non c'era molto su Google per le persone con errori gulp-ruby-sass.

Per chi riceve un errore "source non corrisponde a nessun file." Assicurati che il percorso (i) che inserisci all'interno di gulp.src() abbia almeno un file sass (o scss) al loro interno.

Nella mia situazione, avevo 3 percorsi per l'attività e solo 1 dei percorsi era completamente vuoto. Aggiungendo un file vuoto (_fake.scss) a quel percorso, l'errore è stato corretto.

Spero che questo aiuti qualcuno!

Problemi correlati