【问题标题】:Including and automatically compiling Sass on Express server在 Express 服务器上包含并自动编译 Sass
【发布时间】:2012-12-01 02:08:48
【问题描述】:

所以我设置了一个基本的 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 服务器的有用信息。

【问题讨论】:

  • 我只会使用这种方法,如果它实际上是在应用程序运行之前预编译你的样式。如果它不这样做,我会避免使用这个解决方案。

标签: node.js express sass


【解决方案1】:

首先添加这个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 的,在你的 scss文件,无法正常工作...有关当前状态,请参阅https://github.com/andrew/node-sass/issues/27

2013-10-22 更新: 显然,上面提到的问题似乎已根据下面 cmets 中的 @jonathanconway 进行了修复...尽管仍有 unanswered comment on the issue from someone that still experiences the error at 2013-09-03

【讨论】:

  • 所以我应该使用 LESS 还是 Stylus?
  • 我个人更喜欢带有 SCSS 语法的 SASS,而不是 LESS 和 Stylus,主要是因为 inuitcss.com 的框架很棒。所以我建议继续使用 SASS,但是用 ruby​​-gem sass 编译它。这就是我在 node-sass 之前要做的事情,或者另一个包会变得足够好......
  • 导入问题似乎已经解决,因为导入现在对我来说可以正常工作(至少在 WinServer 2008 上)。
  • 很高兴听到这个消息!我认为 SASS 很棒,但我发现自己在所有 NodeJS 工作中都使用手写笔,因为这个问题,所以也许现在我准备好回去了 :)
【解决方案2】:

就像 joakimbeng 所说,目前 node-sass 库存在@import 有点损坏的问题。

但是!我找到了一个解决方法,you can see here

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 2017-07-30
    • 1970-01-01
    • 2013-08-08
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多