2010-02-01 18 views

Respuesta

20

Dependiendo de su entorno de construcción, se puede iniciar dotless.Compiler.exe como una tarea de compilación.

Por ejemplo, el uso de una tarea previa a la compilación en Visual Studio (todas 1 línea):

$(SolutionDir)Tools\dotLess\dotless.compiler.exe -m 
    $(ProjectDir)content\css\site.less $(ProjectDir)content\css\site.css 

Las macros ($(SolutionDir), etc) permiten un poco de flexibilidad para proyectar y ubicaciones de archivos. En lugar de utilizar los archivos estándar .less, simplemente haga referencia a los nuevos archivos .css en su marcado.

+0

ALL IN ONE LINE es muy importante, de lo contrario obtendrá un error de compilación de MS. El comando exicted con mierda -1. – Sakthivel

+0

Con respecto a la portabilidad: no olvide incluir entre comillas cada parámetro de su comando, ya que las tareas de compilación se ejecutan como un archivo por lotes y el lote no puede manejar los espacios en los nombres de los directorios. Ejemplo: '" $ (ProjectDir) .. \ .. \ .. \ .. \ lib \ dotless \ tool \ dotless.compiler.exe "" $ (ProjectDir) Styles \ Home.less "" $ (ProjectDir) Styles \ Home.css "' – ViRuSTriNiTy

3

Phil Haack al rescate: http://haacked.com/archive/2009/12/02/t4-template-for-less-css.aspx

cada vez que desee tener algo generado en su solución en tiempo de compilación, T4 es por lo general el camino a seguir ...

+3

también las plantillas T4 son ahora parte del proyecto sin punto y get generado por el servidor de compilación en cada commit (las plantillas de Phil están ahora desactualizadas). Puede obtener la última t4css del servidor de construcción sin punto haciendo clic en el botón de descarga en nuestro sitio web http://www.dotlesscss.com – Tigraine

2

También hay otra manera de precompilar durante el desarrollo.

El proyecto sin puntos presenta un compilador de línea de comandos (dotless.Compiler.exe) que puede compilar y minificar el CSS.

También puede usar el compiler.exe con el parámetro --watch donde se mantendrá ejecutándose y escanear su archivo de entrada en busca de cambios, regenerando siempre que realice cambios en el archivo. Por lo tanto, te hace independiente de Visual Studio.

+0

Gracias, este es un buen consejo. – Pickels

+0

Es por eso que escribimos esa característica .. Recibí demasiadas preguntas de los desarrolladores de php a los que les encantaría usar dotless pero no les importaban todas las cosas específicas de .NET. Y dotless es, después de todo, solo un exe y un dll, a diferencia del ruby. – Tigraine

7

Todo,

Después de usar casi todas las alternativas discutidas aquí y no estar satisfecho, me escribió un compilador complemento LessCss para Visual Studio. Toma archivos .less y genera archivos .css solo cuando el archivo .less cambia. Utiliza el último y mejor compilador less.js.

See it in use here.

Download the signed extension.

Source code is here.

me acaba de enviar a la galería de extensiones VS. Esperemos que esté pronto allí, pero mientras tanto, instale (o compile e instale) y compruébelo.

+0

Vi el video y se ve exactamente lo que estaba buscando. No puedo instalarlo, sin embargo. El instalador aparentemente funciona, pero no aparece en Visual Studio. ¿Sabes por qué esto podría estar pasando? – jpbochi

+1

BTW, ¿se aprobó en la Galería de extensiones VS? No puedo encontrarlo allí. – jpbochi

+0

Pude instalarlo ahora. Seguí esto: http://msdn.microsoft.com/en-us/library/ee814429.aspx, pero no estoy seguro de que fue lo que solucionó el problema. – jpbochi

2

Es posible que desee echar un vistazo a Chirpy. Tiene mucho más apoyo que solo MENOS. Desearía haberlo encontrado antes de escribir el mío.

Hablando de eso, también escribí una herramienta de creación personalizada de Visual Studio que se ejecuta utilizando el archivo JS (en lugar de.NET puerto) puede echar un vistazo a la fuente aquí: https://github.com/paultyng/JsBuildTools

O también está en la galería de extensiones en JsBuildTools.

3

Aquí está la solución que se me ocurrió, usando MSBuild. Es incremental, por lo que solo debería suceder cuando cambia Menos. También maneja correctamente @import.

Primero, agregue dotless a su proyecto con NuGet. No necesita nada de la magia que agrega a su web.config, por lo que puede revertir eso; solo lo está usando para hacer que el compilador sea ejecutable.

A continuación, añadir sus "raíces" Menos archivos a su .csproj, así:

<ItemGroup> 
    <LessCssRootInput Include="example.less" /> 
</ItemGroup> 

Por último, añadir este fragmento en el fondo de su .csproj:

<ItemGroup> 
    <LessCssSubInput Include="**\*.less" Exclude="@(LessCssRootInput)" /> 
    <LessCssOutput Include="@(LessCssRootInput -> '%(RelativeDir)\%(Filename).css')" /> 
</ItemGroup> 
<Target Name="CompileLessCss" BeforeTargets="Compile" Inputs="@(LessCssRootInput);@(LessCssSubInput)" Outputs="@(LessCssOutput)"> 
    <Exec Command="&quot;$(SolutionDir)\packages\dotless.1.3.1.0\tool\dotless.compiler.exe&quot; --minify --keep-first-comment @(LessCssRootInput)" /> 
</Target> 
+0

¿Incluye automáticamente los archivos en el proyecto? ¿O aún tengo que mostrar todos los archivos y luego incluir los archivos generados manualmente? Por favor responde ... ¡gracias! – fiberOptics

+0

No necesita contarlo Menos archivos que solo están incluidos de otros archivos. Esos se incluyen automáticamente por el patrón "** \ *. Less". Pero es necesario que cuente sobre los archivos "root" Less que incluyen (en LessCssRootInput). Producirá un archivo CSS por cada archivo "raíz" Menos. –

+0

Perfecto !!!!!!! –

Cuestiones relacionadas