Stilo ed Express: i fogli di stile non vengono ricompilati quando modificati

Sto eseguendo l’ultima versione di Node su Mac OS X. Ho installato Express insieme a Stylus. Anche le ultime versioni.

Stylus non sta ricompilando i miei file .styl quando li modifico . Come posso risolvere questo?

L’unica soluzione per ottenere i miei file .styl ricompilati è quella di eliminare i file .css compilati … riavviare la mia applicazione, o fare un clear-cache-refresh (CMD + Shift + R) non risulta -compilare.

Ecco un dump della mia configurazione dell’applicazione. È praticamente lo stesso di quando crei una nuova applicazione Express con l’eseguibile …

app.configure(function () { this.set("views", __dirname + "/views"); this.set("view engine", "jade"); this.use(express.bodyParser()); this.use(express.methodOverride()); this.use(express.static(__dirname + '/public')); this.use(require("stylus").middleware({ src: __dirname + "/public", compress: true })); this.use(this.router); }); 

Entrambi i file .styl e compilati .css si trovano in [application]\public\stylesheets\

Metti static() sotto il middleware dello stilo.

Ora può essere troppo tardi, ma ho passato alcune ore (T__T) su questo, e penso che sia un insetto di giada o qualcosa del genere. Mi spiegherò: con questo codice in server.js:

 app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use( stylus.middleware({ src: __dirname + "/assets/stylus", dest: __dirname + "/assets/css", debug: true, compile : function(str, path) { console.log('compiling'); return stylus(str) .set('filename', path) .set('warn', true) .set('compress', true); } }) ); app.use(express.static(__dirname + '/assets')); 

e nell’indice.jade:

 link(rel="stylesheet", href="css/style.css") 

funziona perfettamente. Il problema era quando nel tag link c’era:

 link(rel="stylesheet", href="stylesheets/style.css") 

e poi non stava ricompensando affatto.

Spero che questo ti possa aiutare

Impostazioni predefinite Express.js

 app.use(require('stylus').middleware(path.join(__dirname, 'public'))); 

Comprimere lo stilo Express.js è necessario aggiungere il foglio di stile nel documento, il caricamento della pagina è compilato e comprime il css

 app.use(require('stylus').middleware({src: path.join(__dirname, 'public'), compress: true}));