Expressを使用してnode.jsのJs styleSheetsをレンダリングする最良の方法は何ですか?

StackOverflow https://stackoverflow.com/questions/4028569

  •  26-09-2019
  •  | 
  •  

質問

サーバーが読み込まれたときにそれが少ないことをコンパイルしたいという小さなnode.jsアプリ(私の最初)があります。私が始めているポイントは、サーバーが作成されたときにサステンプレートをコンパイルするように見えるJadeのExpress Exampleアプリです。

var pub = __dirname + '/public';

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

私はこれを見て、それがSASSをより少ないものに変更するのと同じくらい簡単であることを望んでいましたが、それはうまくいきません。

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

ありがとう!

役に立ちましたか?

解決

直接コンパイルする必要があります。 SASSは、Expressでそれほど少ないコンパイルではありません。 CSSに直接コンパイルします。少ないと同じ。 CSSに直接コンパイルします。

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

他のヒント

出力されたCSSを模倣したい場合、組み込みのコンパイラ(Connectモジュールから)にCompressオプションが欠落していることがわかりました。したがって、自分のミドルウェアコンパイラを書くのではなく。アプリのConnect Less Compilerを上書きしました。

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'] }));

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);
  });
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top