2

ASP.NET MVC プロジェクトで Dotless を使用しています。他のファイルをインポートするだけのメインの less ファイルがあります。

例えば

main.less には以下が含まれます。

@import "lib/utils" @import "lib/account" @import "lib/settings"

アイデアは、アプリケーション全体で単一の css ファイルを持つことです。

main.less ファイルを保存すると、ドットレス コンパイラは自動的に main.css ファイルを生成しますが、他のファイル (utils.less など) の 1 つを保存すると、utils.css ファイルを生成するだけです。 main.lessを開いて保存し、コンパイラをトリガーして.cssファイルを取得する必要がある.lessファイルのいずれか

どの .less ファイルを保存しても、メインの less ファイルを自動的にコンパイルする方法があるかどうか疑問に思っていました。

ありがとう

4

3 に答える 3

3

Simplessを使用して LESS コンパイルを行います。メインの .less ファイルを渡すと、そのファイルと子の .less ファイルが監視され、バックグラウンドでコンパイルされます。

于 2012-03-13T14:17:54.670 に答える
0

Winlessはまさにこれを行います-それはsimplesに似たコンパイラですが、私はそれがより信頼できることを発見しました。http://winless.org/- _

于 2012-11-22T09:48:55.937 に答える
0

これは古い問題であり、残念ながらネイティブの方法でこれを行う方法はありません。LESS コンパイラは、変更されたファイルを監視するだけです。そのため、インポートのあるファイルを使用している場合、このファイルを変更して再コンパイルする必要があります。

開発環境 (js を使用) では、これを配置してキャッシュをクリアできます。

  <link rel="stylesheet/less" type="text/css" href="/css/style.less"/>
  <script src="/js/less-1.1.5.min.js" type="text/javascript"></script>
  <script>
    less = {env:'development'};
    function destroyLessCache(pathToCss) { // e.g. '/css/' or '/stylesheets/'
      if (!window.localStorage || !less || less.env !== 'development') {
        return;
      }
      var host = window.location.host;
      var protocol = window.location.protocol;
      var keyPrefix = protocol + '//' + host + pathToCss;

      for (var key in window.localStorage) {
        if (key.indexOf(keyPrefix) === 0) {
          delete window.localStorage[key];
        }
      }
    }
    window.onload=destroyLessCache('/css/');
  </script>

参考:https ://github.com/cloudhead/less.js/issues/47

于 2012-03-11T15:10:25.010 に答える