0

開発において、.styl が変更されるたびに .css を再コンパイルすることは非常に便利です。しかし、本番環境では、リクエストごとにコンパイルにリソースを費やしたくありません。アプリの起動時に一度コンパイルしたいと思います。

スタイラスをこのように構成できますか?

4

1 に答える 1

0

SocketStreamには、運用モードで css、js、およびテンプレート ファイルをプリコンパイルするアセット パッカーがあります。おそらく、環境変数 (開発または運用) をチェックするパターンを使用してから、オンザフライでコンパイルされたファイルのセット、またはノードが初めて起動したときに実行される事前にパックされたアセットのセットを提供します (つまり、 css をコンパイルしてから、fsモジュールを使用してそれらをディスクに書き込みます)。

以下は、socketstreamのスタイラス モジュールから取得されます。

stylus(input, {filename: path, paths: [dir.join('/')]})
  .render(function(err, css) {
  if (err) {
    console.log(err);
  }
  cb(css);
});

cb メソッドは、コンパイルされたファイルを受け取る fs.writeFileSync呼び出しをフィードするために使用されるコールバックです。したがって、最終的には 4 つの部分があります。

  1. アプリの起動時に環境変数を確認します。
  2. 開発モードの場合は、現在行っているようにファイルを提供するだけです。
  3. プロダクション モードの場合は、css ファイルをプリコンパイルし、縮小された css ファイルとしてディレクトリに出力します。
  4. ヘッダー HTML の参照を縮小された css ファイルに変更します。
于 2013-03-19T17:11:35.820 に答える