I am running latest version of Node on Mac OS X. I've installed Express together with Stylus. Also the latest versions.
Stylus is not re-compiling my .styl files, when I modify them. How can I fix this?
The only solution to getting my .styl files re-compiled, is to delete the compiled .css files... re-starting my application, or doing a clear-cache-refresh (CMD + Shift + R) is not resulting a re-compile.
Here's a dump of my application configuration. It's basically the same as when you create a new express application with the executable...
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);
});
Both my .styl and the compiled .css files are located in [application]\public\stylesheets\
Put static()
below the stylus middleware.
It can be too late now, but I've just passed some hours ( T__T ) on this, and I think it's a bug of jade or something like that. I'll explain myself: With this code 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'));
and in the index.jade:
link(rel="stylesheet", href="css/style.css")
it works perfectly. The problem was when in the link tag there was:
link(rel="stylesheet", href="stylesheets/style.css")
and then it was not recompiling at all.
I hope this will help
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With