Expressとsocket.ioを使用してnode.jsアプリを作成しています。 SASSを使用したいのですが、npmパッケージがあるのですが、SASS npmとアプリをリンクしてSASSを解析させる方法がわかりません。
更新:私はSASSミドルウェア https://github.com/andrew/node-sass を使用してインストールし、次のようにインクルードしました:
sass = require('node-sass');
app.configure(function(){
app.set('port', process.env.PORT || 3000);
/* other stuff */
sass.middleware({
src: __dirname + '/public/stylesheets/sass',
dest: __dirname + '/public/stylesheets',
debug: true
});
});
しかし、それでも機能しません
this one などのsassミドルウェアを使用する必要があります。
ドキュメントからの引用:
_var server = connect.createServer(
sass.middleware({
src: __dirname
, dest: __dirname + '/public'
, debug: true
}),
connect.static(__dirname + '/public')
);
_
エクスプレスを使用する場合は、以下を追加します。
_ app.use(
sass.middleware({
src: __dirname + '/sass', //where the sass files are
dest: __dirname + '/public', //where css should go
debug: true // obvious
})
);
_
app.configure()
呼び出しに。
もちろん本番システムでは、sassをcssにプリコンパイルすることをお勧めします。
更新
上記の例では、ミドルウェアは___dirname + '/sass/css'
_でsass
ファイルを検索します。また、デフォルトでは、_.scss
_拡張子を持つファイルを探します。拡張子を変更するオプションがないようです。
Express-Generatorを使用している場合は、
express --view=ejs --css=sass
上記のスレッド/コメントを含むさまざまなソースに基づくソリューションは次のとおりです。
node:
var connect = require('connect');
var sass = require('node-sass');
var srcPath = __dirname + '/sass';
var destPath = __dirname + '/public/styles';
var server = connect.createServer(
sass.middleware({
src: srcPath,
dest: destPath,
debug: true,
outputStyle: 'expanded',
prefix: '/styles'
}),
connect.static(__dirname + '/public')
);
html:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="styles/main.css">
etc
ファイルシステム:
rootDirectory/server.js(これはノードアプリです)
rootDirectory/public/styles /(これは、コンパイルされたscssファイルが表示される場所です)
rootDirectory/sass/main.scss
これは私にとってはうまくいき、私は次の場所で例をフォークしました:
ここに:
Expressの実装が少し変更されたようです。代わりにこれを行わなければなりませんでした:
npm install node-sass-middleware --save
その後
var sass = require('node-sass-middleware');
app.use(
sass({
src: __dirname + '/sass', // Input SASS files
dest: __dirname + '/public', // Output CSS
debug: true
})
);