1

私は、単一の LESS ファイルを監視するための良い解決策を見つけようとしています (インポートされたファイルの変更を含みますが、メイン ファイルのみをコンパイルします)。

LESS を「モジュール」として個別のファイルに分割して、もう少し管理しやすくしました。メインの LESS ファイルは単なるインポートの集まりです。ただし、毎回手動でコンパイルするのではなく、変更を監視するために調べたすべてのソリューションは、ディレクトリ内のすべての LESS ファイルをコンパイルするか、インポートされたファイルの変更を認識しません。

したがって、すべてのLESSファイルの変更を監視できるソリューションを探していますが、変更の場合はメインのLESSファイルのみをコンパイルします。誰かが以前にこのようなことをしたことがあるなら、ゼロから何かを作る必要はなく、とても助かります.

更新:このhttps://github.com/jonycheung/Dead-Simple-LESS-Watch-Compiler を見つけました。デフォルトでは、ディレクトリ内のすべての少ないファイルをチェックしてコンパイルします。すべての少ないファイルを監視し、変更が検出されたときにメイン ファイルのみをコンパイルするように変更するのは非常に簡単でした。

4

2 に答える 2

3

LESS 1.3.1 には、 という新しい関数があり@import-onceます。の代わりに@import、 を使用します@import-once

十分に文書化されていませんが、ここに変更ログ問題、議論などがあります

于 2012-10-24T17:06:28.037 に答える
0

Coffeescript を使用しているかどうかはわかりませんが、Less は Node に依存しているため、それがインストールされています。次の Cakefile を作成しました。これは、プレーンな JavaScript ファイルに変換するのが非常に簡単なはずです。また、複数のファイルの変更も非常に簡単でなければなりません。

option '-c', '--lessFile [main Less Filename]', 'The single file to be compiled into the stylesheet, it should import any files it needs'

task 'watch-less', 'Compile Less scripts on the fly during Development', (opts) ->
  less = options.less

  watchers = []

  compile = () ->
    w.close() for w in watchers
    exec "lessc #{less} #{less.replace /\.less$/, ".css"}"
    watch()

  watch = () ->
    exec "lessc -M #{less} -", (err, stdout, stderr) ->
      throw new Error err if err
      watchers = (fs.watch(f, compile) for f in stdout.trim().split(' ').splice(1))

  compile()

通知と免責事項:

  • それ以外の外部依存関係はありません。
  • fs.watchクロスプラットフォームではなく、注意してください
于 2013-09-10T17:51:49.773 に答える