2011-06-13 18 views
8

में एक्सप्रेस और बंधन के साथ कार्य करने के लिए मेरे app.coffee इस तरह दिखता है:कैसे स्टाइलस 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}" 

अद्यतन: मैं यह सब पर सीएसएस-फ़ाइलें लिखने के लिए नहीं मिलता है।

+0

आपकी वास्तविक समस्या क्या है? – Raynos

+0

ऊपर अपडेट किया गया ... – Alfred

उत्तर

4

जवाब मिला, कहा:

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

कनेक्टपैली के ऊपर stylus.middleware कोड को स्थानांतरित करना भी स्पष्ट रूप से अच्छा है। – Alfred

+3

... और आपने कहा कि वास्तव में कहां? –

+0

मैं @ScottDavidTesler से सहमत हूं, यह उत्तर पूरा नहीं हुआ है। – jcollum

3

आप निश्चित रूप से अपने खुद के संकलन समारोह प्रदान कर सकते हैं, लेकिन यह अनावश्यक रूप से डिफ़ॉल्ट एक ओवरराइड करता है। इसके बजाय, अपने मिडलवेयर कॉल करने के लिए डिबग विकल्प जोड़ने और निरीक्षण जहां कोई बात बिगड़ जा रहे हैं:

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

मेरे लिए, समस्या गलत src/गंतव्य पथ की स्थापना की गई थी। क्या आप सुनिश्चित हैं कि आपकी .styl फ़ाइलें वास्तव में आपके विचार फ़ोल्डर में स्थित हैं?