28

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

しかし、それはまだ機能しません

4

4 に答える 4

29

これなどのsassミドルウェアを使用する必要があります。

ドキュメントからの引用:

var server = connect.createServer(
   sass.middleware({
       src: __dirname
       , dest: __dirname + '/public'
       , debug: true
    }),
   connect.static(__dirname + '/public')
);

Express を使用する場合は、以下を追加します。

 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 にプリコンパイルすることをお勧めします。

アップデート

sass上記の例では、ミドルウェアは .xml 内のファイルを探します__dirname + '/sass/css'。また、デフォルトでは、.scss拡張子を持つファイルを探します。拡張子を変更するオプションはないようです。

于 2013-01-09T17:08:55.197 に答える
4

Here is a solution based on various sources including the threads/comments above:

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

file system:

rootDirectory / server.js (this is the node app)

rootDirectory / public / styles / (this is where the compiled scss files will appear)

rootDirectory / sass / main.scss

This works for me and I've forked the example at:

node-sass-example

here:

node-sass-example using prefix

于 2014-10-09T12:00:07.463 に答える