簡體   English   中英

mvc中的nodejs / jade / express:無法使用手寫筆來編譯文件

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

我正在按照本教程使用node.js,Express和Jade設置適當的MVC項目。 它很棒。 我只是在設置Stylus和nib時遇到問題。

我的文件系統:

/
| 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文件。 我嘗試了數千種不同的方法來實際添加這個中間件。 我嘗試在路由器,靜態等之前和之后添加它。

其他可能相關的文件:

  • style1.css只是一些隨機的.css文件,用於檢查它們是否正確加載。 玉將加載它很好。
  • config.js為空。

據我所知它的工作原理如下:server.js要求express.js初始化和配置自己,並等待獲得一個完成的快速對象。

Express要求路由器使用index.server.routers.js文件,該文件又要求index.server.controller.js做一些事情。 它完成了它的東西,在它完成express.js后可以將app返回到server.js,它將開始監聽端口8888。

我知道它可能與我訂購文件的順序有關,可能是因為我渲染太快或者其他東西......但是那些.styl文件仍然應該出現! 使用debug:true將不會在控制台中顯示任何內容,唯一的消息是“服務器正在端口上運行:8888”。

Firefox開發人員工具說style1.css正確加載,而style.css的查詢失敗了404(因為Stylus沒有編譯這樣的文件)。

花了幾個小時(字面意思),我放棄並請求你的幫助,stackoverflowers。

經過一段時間的斗爭,我發現最好的解決方案是使用:

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

對於異步任務來監視文件更改和自動編譯。 不知道如何讓它在Windows下工作,但TBH我不在乎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM