9

所以我设置了一个基本的 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')));
});

我需要做什么才能让 Sass 工作并自动重新编译?我似乎找不到任何专门针对 Express 服务器的有用信息。

4

2 回答 2

16

首先添加这个require语句:

var sass = require("node-sass");

然后是您的app.configure块中的以下代码:

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

我很遗憾地说 node-sass 库目前毫无用处,因为@import在你的文件中,'sscss不能按预期工作......见https://github.com/andrew/ node-sass/issues/27查看当前状态。

2013 年 10 月 22 日更新:显然,根据@jonathanconway在下面的评论中,上述问题似乎已得到解决……尽管在2013 年 9 月 3 日仍然遇到错误的人对此问题仍有未答复的评论

于 2012-12-15T19:08:04.563 回答
0

就像 joakimbeng 所说,目前 node-sass 库存在一个问题,即@import's 有点坏。

然而!我找到了一种解决方法,您可以在此处查看

我所做的基本上是获取原始 sass(在我的例子中是 scss),然后让 node-sass 为我渲染字符串。但是,由于它的当前工作目录是你的 server.js 文件所在的任何位置,你将不得不将 url 放在你的 sass 文件中,相对于你的 server.js。就我而言,像这样

于 2013-04-12T21:47:22.933 回答