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;
}

私が理解している限り、コンパイルは起動時に行われるはずであり、srcdest が指定されていないため、-dir に css ファイルが生成されます。
私のサーバーは正常に動作しますが、ディレクトリ名、ディレクトリ、および LESS/SASS ファイルの名前 (およびそれぞれの LESS/SASS コンテンツ) をいじる方法がいくつあっても、これを機能させることはできません。ダーン!ヘルプ。

4

5 に答える 5

13

私もこの設定を取得しようとしている初心者です。見つけたスニペットをいくつか試しましたが、expressに新しいプロジェクトを設定する「express」コマンドがあることにようやく気づきました。

express -c lessCSSエンジンとしてLESSを使用してサンプルプロジェクトを作成してみてください。

これにより、必要なディレクトリが作成されます。新しい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

あなたのセットアップは、 readymadeの標準セットアップです。ただし、システムにインストールされているコンパイラが少ないことを確認してください。

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 Web サイトでガイドを確認することもできます。

于 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 に答える