所以我设置了一个基本的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服务器的任何有用信息。
答案 0 :(得分: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
}));
...
但是我很遗憾地说,节点sass库目前非常无用,因为@import
在您的{ {1}}文件无法按预期工作...请参阅https://github.com/andrew/node-sass/issues/27了解当前状态。
更新2013-10-22:显然上面提到的问题似乎是根据@jonathanconway在下面的评论中修复的......虽然还有unanswered comment on the issue from someone that still experiences the error at 2013-09-03 < / p>
答案 1 :(得分:0)
就像joakimbeng所说,目前node-sass库存在@import
被破坏的问题。
然而!我找到了一个解决方法,you can see here。
我所做的基本上是抓住原始sass(在我的情况下,scss),让node-sass为我渲染字符串。但是,因为当前工作目录是您的server.js文件所在的位置,所以相对于您的server.js,您将不得不将url放在sass文件中。就我而言,like this。