11

任何人都有关于nodejs的真正新手指南 - express - SASS/LESS?我无法让这个工作。我现在的例子是尽可能简单的..

var express = require('express'),
    less = require('less'),
    app = express.createServer();

var pub_dir = __dirname + '/public';

app.configure(function(){ 
    app.use(express.compiler({ src: pub_dir, enable: ['less'] }));
    app.use(express.staticProvider( pub_dir ));
};

app.configure('development', function(){
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

该文件style.css.less位于pub_dir,我可以直接访问它,并且样式是

@brand_color: #4D926F;
body {
  color: @brand_color;
}

据我了解,编译应该在启动时发生,并且将在src-dir中生成一个css文件,因为没有指定dest。
我的服务器运行良好,但无论我尝试了多少种方式来处理 LESS/SASS 文件的目录名、目录和名称(以及它们各自的 LESS/SASS 内容),我都无法使其正常工作。该死!帮助。

4

5 回答 5

13

我也是一个试图获得这个设置的新手。我尝试了一些我发现的片段,直到我终于注意到 express 有一个设置新项目的“express”命令。

尝试express -c less使用 LESS 作为 CSS 引擎创建一个示例项目。

这应该创建所需的目录。新的 css 文件将从您的静态目录中提供。

配置是:

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'hbs');
  app.use(express.bodyDecoder());
  app.use(express.methodOverride());
  app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }));
  app.use(app.router);
  app.use(express.staticProvider(__dirname + '/public'));
});
于 2011-01-03T07:13:45.173 回答
2

您的设置是现成的标准设置。不过,请确保在您的系统上安装了较少的编译器。

npm install lessjs readymade

然后将以下内容添加到您的 server.js

app.use(require('readymade').middleware({root: "public"}));

于 2012-07-11T22:04:34.833 回答
1

这是一个类似的问题: Node.js + Express.js。如何减少 css 的渲染?

您还可以查看ExpressJS 网站上的指南

于 2011-02-10T00:10:43.647 回答
0

我正在使用 express 4.x 并使用 SASS。这是我用于样式的片段部分(请注意评论):

var express = require('express'),
    // ... other packages
    sass = require('node-sass');

// ...
var app = express();
// ...
// Commented this default express generator line:
// app.use(require('stylus').middleware(path.join(__dirname, 'public')));
//
// Because of some bug the node-sass (http://git.io/eItWzA) does not scan the correct folders,
// so I have both .scss and final .css in one /public/css/ folder
app.use(
    sass.middleware({
        src: __dirname + '/public/', // where the sass files are 
        dest: __dirname + '/public/', // where css should go
    })
);

// ... rest of app

这是它的要点:http: //git.io/Vr9KJA

于 2014-08-08T13:48:08.487 回答