Как заставить Stylus работать с Express и Connect в CoffeeScript - PullRequest
8 голосов
/ 13 июня 2011

Мой app.coffee выглядит так:

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}"

Обновление: У меня не получается писать CSS-файлы вообще.

Ответы [ 2 ]

4 голосов
/ 14 июня 2011

Нашел ответ, добавил:

compile = (str, path, fn) ->
  stylus(str).set('filename', path).set('compress', true)
3 голосов
/ 02 июля 2011

Конечно, вы можете предоставить свою собственную функцию компиляции, но она излишне переопределяет функцию по умолчанию. Вместо этого, добавьте опцию отладки к вашему вызову промежуточного программного обеспечения и проверьте, что происходит не так:

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

Для меня проблема заключалась в установке неправильного пути src / dest. Вы уверены, что ваши файлы .styl действительно находятся в вашей папке представлений?

...