2011-06-13 12 views
8

Mi app.coffee se parece a esto:Como llegar Stylus para trabajar con Express y Connect en CoffeeScript

connect = require 'connect' 
express = require 'express' 
jade = require 'jade' 
stylus = require 'stylus' 

app = express.createServer() 

# CONFIGURATION 

app.configure(() -> 
    app.set 'view engine', 'jade' 
    app.set 'views', "#{__dirname}/views" 

    app.use connect.bodyParser() 
    app.use connect.static(__dirname + '/public') 
    app.use express.cookieParser() 
    app.use express.session({secret : "shhhhhhhhhhhhhh!"}) 
    app.use express.logger() 
    app.use express.methodOverride() 
    app.use app.router 

    app.use stylus.middleware({ 
    force: true 
    src: "#{__dirname}/views" 
    dest: "#{__dirname}/public/css" 
    compress: true 
    }) 
) 

# ROUTES 

app.get '/', (req, res) -> 
    res.render 'index', 
    locals: 
     title: 'Title' 

# SERVER 

app.listen(1234) 
console.log "Express server listening on port #{app.address().port}" 

Actualización: No entiendo a escribir los archivos CSS en absoluto.

+0

¿Cuál es su problema real? – Raynos

+0

Actualizado anteriormente ... – Alfred

Respuesta

4

encontrado la respuesta, añade:

compile = (str, path, fn) -> 
    stylus(str).set('filename', path).set('compress', true) 
+0

También aparentemente es bueno mover el código stylus.middleware por encima del connect.public. – Alfred

+3

... y usted agregó eso exactamente donde? –

+0

Estoy de acuerdo con @ScottDavidTesler, esta respuesta no está completa. – jcollum

3

Por supuesto, puede proporcionar su propia función de compilación, pero innecesariamente anula la opción por defecto. En su lugar, añadir la opción de depuración para su llamada middleware e inspeccionar donde las cosas van mal:

app.use stylus.middleware 
    debug: true 
    force: true 
    src: "#{__dirname}/../public" 
    dest: "#{__dirname}/../public" 

Para mí, el problema se estaba poniendo el camino src/destino equivocado. ¿Seguro que tus archivos .styl están ubicados en tu carpeta de vistas?

Cuestiones relacionadas