3

私は小さなnode.jsアプリ(私の最初)を持っていて、サーバーがロードされたときにそれをless.jsスタイルシートでコンパイルしたいと思っています。私が始めているのは、サーバーの作成時にSASSテンプレートをコンパイルしているように見えるjadeのエクスプレスサンプルアプリです。

var pub = __dirname + '/public';

var app = express.createServer(
  express.compiler({ src: pub, enable: ['sass'] }),
  express.staticProvider(pub)
);

私はこれを見て、sassをlessに変更するのと同じくらい簡単になることを望みましたが、それはうまくいかないようです。

私が取るべき別のアプローチはありますか?足りないものはありますか?.compileメソッドに関するドキュメントがどこにも見つかりません。

ありがとう!

4

3 に答える 3

3

出力された css を縮小したい場合、組み込みのコンパイラ (connect モジュールから) に圧縮オプションがないことがわかりました。そのため、独自のミドルウェア コンパイラを作成するのではなく、. アプリのコネクトレス コンパイラを上書きしました。

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

express.compiler.compilers.less.compile = function (str, fn) {
    if (!less) less = require("less");                                                      
    try {
        less.render(str, { compress : true }, fn);
    } catch (err) {
        fn(err);
    }
};

app.use(express.compiler({ src: publicdir, enable: ['less'] }));
于 2011-12-04T23:53:11.950 に答える
3

直接コンパイルする必要はありません。Sass は、express で less にコンパイルしません。css に直接コンパイルされます。少ないのと同じ。css に直接コンパイルされます。

var app = express.createServer(
  express.compiler({ src: pub, enable: ['less'] }),
  express.staticProvider(pub)
);
于 2010-10-27T07:48:46.553 に答える
1

Express 3 の場合は、次のスニペットを使用します。

var express = require('express'),
    less = require('less');

var app = express();
app.engine('less', function (path, options, callback) {
  fs.readFile(path, 'utf8', function (error, contents) {
    if (error) return callback(error);
    less.render(contents, options, callback);
  });
});
于 2012-12-07T15:11:48.987 に答える