nodejs/jade/express 在 mvc 中:无法让手写笔编译文件

nodejs/jade/express in mvc: cannot get stylus to compile files

我正在跟随 this tutorial 使用 node.js、Express 和 Jade 设置正确的 MVC 项目。它很好用。我只是在设置手写笔和笔尖时遇到问题。

我的文件系统:

/
| app
  | controllers
    | index.server.controller.js
  | models
  | routes
    | index.server.routes.js
  | views
    | stylesheets
      | style.styl
    | index.jade
| config
  | env
  | config.js
  | express.js
| node_modules
  | ...
| public
  | images
  | scripts
  | stylesheets
    | style1.css
| package.json
| server.js

server.js:

var port = 8888
var express = require('./config/express')

var app = express()

app.listen(port)

console.log('server is running on port: ' + port)

express.js:

var express = require('express')
var stylus = require('stylus')
var nib = require('nib')

module.exports = function() {
    var app = express()

    app.set('views', './app/views')
    app.set('view engine', 'jade')

    require('../app/routes/index.server.routes.js')(app)

    app.use(stylus.middleware({
        src: __dirname + '/app/views',
        dest: __dirname + '/public'
    }))

    app.use(express.static('./public'))

    return app
}

index.server.routes.js:

module.exports = function(app) {
    var index = require('../controllers/index.server.controller')

    app.get('/', index.render)
}

index.server.controller.js:

exports.render = function(req, res) {
    res.render('index', {
        title: 'hello world',
        header: 'hi tahr'
    })
}

我知道我什至没有尝试 运行 nib 在这里,它甚至不会编译 .styl 文件。我尝试了数千种不同的方法来实际添加这个中间件。我试着在路由器、静态等之前和之后添加它

其他可能相关的文件:

据我了解它是这样工作的:server.js 要求 express.js 初始化和配置自身并等待获得完成的 express 对象。

Express 向路由器请求 index.server.routers.js 文件,该文件又要求 index.server.controller.js 做一些事情。它完成它的工作,完成后 express.js 可以 return 应用程序到 server.js 它将开始侦听端口 8888。

我知道这可能与我订购文件的顺序有关,可能是因为我渲染得太早或其他原因......但那些 .styl 文件仍然应该出现!使用 debug: true 不会在控制台中显示任何内容,唯一的消息是 "server is running on port: 8888".

Firefox 开发人员工具显示 style1.css 正确加载,而 style.css 的查询失败并显示 404(因为没有 Stylus 编译的此类文件)。

经过数小时(字面意思)后我放弃并寻求你的帮助,Whosebugers。

经过一段时间的斗争,我发现最好的解决方案是使用:

npm install -g stylus
stylus -w /public/stylesheets&

用于监视文件更改和自动编译的异步任务。虽然不知道如何让它在 Windows 下工作,但说实话我不在乎。