在Express服务器上包含并自动编译Sass

Con*_*ack 9 sass node.js express

所以我有一个基本的Express项目设置,我正在使用这个github项目,https://github.com/andrew/node-sass,以便能够在节点之上使用Sass.这是我app.js目前的:

var io = require('socket.io'),
    express = require('express'),
    path = require('path'),
    routes = require('./routes'),
    jquery = require('jquery');


/**
* Create app
*/

var app = express()
  , server = require('http').createServer(app)
  , io = io.listen(server);

/**
* Configure app
*/ 

app.configure(function(){ 
    app.set('port', 8080);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'ejs');
    app.use(express.static(path.join(__dirname, 'public')));
});
Run Code Online (Sandbox Code Playgroud)

我需要做些什么才能让Sass工作并自动重新编译?我似乎无法找到Express服务器的任何有用信息.

joa*_*eng 16

首先添加此require声明:

var sass = require("node-sass");
Run Code Online (Sandbox Code Playgroud)

然后在你的app.configure块中的以下代码:

...
app.use(sass.middleware({
    src: <your-sass-files-dir>,
    dest: path.join(__dirname, 'public'),
    debug: true
}));
...
Run Code Online (Sandbox Code Playgroud)

我很遗憾地说,node-sass库目前还没,因为@import你的scss文件中的's 不能正常工作......请参阅https://github.com/andrew/ node-sass/issues/27表示当前状态.

更新2013-10-22:显然上面提到的问题似乎是根据@jonathanconway在下面的评论中修复的......尽管在2013-09-03仍然遇到错误的人仍然没有回答这个问题的评论

  • 我个人更喜欢SASS与LESS和Stylus的SCSS语法,主要是因为它有很好的框架http://inuitcss.com/.所以我建议继续使用SASS,但用ruby-gem sass编译它.这就是我要做的事情,直到node-sass或其他软件包才会变得足够好...... (3认同)