Genere automáticamente CSS principal cuando se guarda MENOS importado

Estoy usando Dotless en mi proyecto ASP.NET MVC, tengo un archivo main less que solo importa algunos otros archivos.

p.ej

main.less contiene:

@import "lib/utils" @import "lib/cuenta" @import "lib/configuración"

La idea es tener un solo archivo css en toda la aplicación.

Cuando guardo el archivo main.less, el compilador sin puntos genera automáticamente el archivo main.css; sin embargo, cuando guardo uno de los otros archivos (como utils.less), solo genera el archivo utils.css, por lo tanto, si hago un cambio en cualquiera de los archivos .less que tengo que abrir main.less y guardarlo para activar el compilador y obtener el archivo .css

Me preguntaba si hay una manera de compilar automáticamente el archivo principal menos sin importar qué archivo .less guarde.

Muchas Gracias

preguntado el 10 de marzo de 12 a las 02:03

Si está trabajando con ASP.NET MVC 4, esto debería solucionarse fácilmente utilizando la función de nuevos paquetes para paquete sus archivos CSS. -

3 Respuestas

yo suelo Sencillo para hacer mi compilación LESS, le das tu archivo principal .less y observará ese y cualquier archivo secundario .less y compilará en segundo plano para ti.

respondido 13 mar '12, 14:03

Lo miraré, gracias por el enlace. ¿También comprimirá el css generado? - Willvv

Sí, la compresión está integrada como estándar y permite una marca en el archivo less para deshabilitarlo para la depuración. - Chao

Este es un problema antiguo y, lamentablemente, no hay forma de hacerlo de forma nativa. El compilador LESS solo observa los archivos modificados. Por lo tanto, si está utilizando un archivo con importaciones, este archivo debe modificarse y volver a compilarse.

En el entorno de desarrollo (con js) puede poner esto para borrar el caché:

  <link rel="stylesheet/less" type="text/css" href="/es/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>

Referencia: https://github.com/cloudhead/less.js/issues/47

respondido 11 mar '12, 15:03

Estaba buscando más una solución que me impidiera cambiar las cosas al pasar del desarrollo a la producción. Terminé importando el archivo .less en desarrollo y el archivo .css en producción. Cuando el archivo .less se importa directamente (en lugar del .css), el compilador lo vuelve a generar automáticamente. Esto es posible solo en desarrollo. Lo único que falta es que tengo que generar manualmente el .css cuando implemento. - Willvv

Si.. Debes copiar el css generado y pegarlo en otro archivo (preferiblemente comprimido). Como puede ver en el enlace de mi respuesta, todavía no hay una solución definitiva para esto. yo tambien sufro con este problema =/- Shankar Cabú

¿A qué te refieres con copiar a otro archivo? El compilador sin puntos genera automáticamente un archivo .css comprimido para mí, solo tengo que activar el compilador manualmente antes de implementarlo. - Willvv

No estoy usando dotless, pero lesscss (lesscss.org) tiene dos formas de compilar el archivo .less: por javascript o compilador del servidor. Siempre tengo problemas con el compilador del servidor, así que prefiero usar el compilador de javascript para el desarrollo, que genera el css y lo coloca en el en tag. So, when I need to do a push any change to production (that not happens always), I copy and paste this code in another file .css. But the problem is the same, the compiler only assists and recompiles modified files, so try clearing cache. - Shankar Cabú

Winless hace exactamente esto: es un compilador similar a simpless pero lo he encontrado más confiable. http://winless.org/ -

respondido 22 nov., 12:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.