2012-12-13 16 views
9

基本的なExpressプロジェクトをセットアップしました。ノードの上にSassを使用できるように、このgithubプロジェクトhttps://github.com/andrew/node-sassを使用しています。これは、現在、私のapp.jsです:Sass on Expressサーバーを含めて自動的にコンパイルする

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

私はサスの作業と自動再コンパイルを取得するために行うには何が必要ですか?私はExpressサーバーのための有用な情報を具体的に見つけることができないようです。

+0

アプリが実行される前に実際にスタイルを事前にコンパイルしている場合にのみ、このアプローチを使用します。それができない場合、私はこの解決方法を使用しないでください。 – Oddman

答えて

16

まずこのrequireステートメントを追加します。

var sass = require("node-sass"); 

し、次のコード、あなたのapp.configureブロックに:

... 
app.use(sass.middleware({ 
    src: <your-sass-files-dir>, 
    dest: path.join(__dirname, 'public'), 
    debug: true 
})); 
... 

しかし、私はノード-SASSライブラリーと言ってごめんなさいあなたのscssファイル内の@importさんのファイルが想定どおりに動作しないため、現時点では役に立たないですto ...現在のステータスはhttps://github.com/andrew/node-sass/issues/27を参照してください。

UPDATE 2013年10月22日:どうやら、上述の問題は、以下のコメントで@jonathanconwayに応じて固定されるように... joakimbengが言ったようにunanswered comment on the issue from someone that still experiences the error at 2013-09-03

+0

だから私はLESSかStylusを使うべきですか? –

+3

個人的に私は、LESSとStylusのどちらよりもSCSS構文でSASSを好んでいます。これは主に、素晴らしいフレームワークhttp://inuitcss.com/のためです。 SASSを使い続けることをお勧めしますが、それをruby-gem sassでコンパイルしてください。それは私がノード・サス、または別のパッケージが十分に良い状態になるまで私がすることです。 – joakimbeng

+0

恐ろしい、ありがとう! –

0

はまだだけどそうです、現在のノード-SASSライブラリには@importが壊れているような問題があります。

ただし、回避策を見つけました。これはyou can see hereです。

私が基本的にやったのは、生のサス(私の場合はscss)をつかんで、ノードサスが私のために文字列をレンダリングさせることです。しかし、の現在の作業ディレクトリは、server.jsファイルがどこにあっても、あなたのserver.jsを基準にして、あなたのsassファイルにurlを置く必要があります。私の場合、like this

関連する問題