2

我在我的 ASP.NET MVC 项目中使用 Dotless,我有一个主要的 less 文件,它只导入一些其他文件。

例如

main.less 包含:

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

这个想法是在整个应用程序中拥有一个 css 文件。

当我保存 main.less 文件时,无点编译器会自动生成 main.css 文件,但是当我保存其他文件之一(如 utils.less)时,它只会生成 utils.css 文件,因此如果我对我必须打开 main.less 并保存它以触发编译器并获取 .css 文件的任何 .less 文件

我想知道是否有一种方法可以自动编译主 less 文件,无论我保存哪个 .less 文件。

谢谢

4

3 回答 3

3

我使用Simpless进行 LESS 编译,你给它你的主 .less 文件,它会监视它和任何子 .less 文件,并在后台为你编译。

于 2012-03-13T14:17:54.670 回答
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 回答
0

Winless 正是这样做的——它是一个类似于 simpless 的编译器,但我发现它更可靠。http://winless.org/ -

于 2012-11-22T09:48:55.937 回答