asp.net mvc - proyecto - Estudio visual-precompilación-sin punto
migrating from asp net mvc to asp net core mvc (7)
Aquí está la solución que se me ocurrió, usando MSBuild. Es incremental, por lo que solo debería suceder cuando los Menos cambian. También maneja correctamente @import
.
Primero, agregue sin punto a su proyecto con NuGet. No necesitas nada de la magia que agrega a tu web.config
, por lo que puedes revertir eso, solo lo estás usando para obtener el ejecutable del compilador.
A continuación, agregue sus archivos "root" Less a su .csproj
, así:
<ItemGroup>
<LessCssRootInput Include="example.less" />
</ItemGroup>
Finalmente, agregue este fragmento en la parte inferior 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=""$(SolutionDir)/packages/dotless.1.3.1.0/tool/dotless.compiler.exe" --minify --keep-first-comment @(LessCssRootInput)" />
</Target>
Me pregunto si hay una manera de precompilar archivos *.less
( http://www.dotlesscss.org/ ) con Visual Studio.
El sitio me da un dotless.compiler.exe
pero no estoy seguro de cómo conectarlo a Visual Studio. Estoy buscando una solución tanto para formularios web como para ASP.NET MVC.
Dependiendo de su entorno de compilación, puede iniciar dotless.Compiler.exe
como una tarea de compilación.
Por ejemplo, usando una tarea previa a la compilación en Visual Studio (toda la línea 1):
$(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 ubicar archivos. En lugar de usar los archivos .less
estándar, simplemente haga referencia a los nuevos archivos .css
en su marca.
En mi búsqueda de trabajar con DotLess también encontré esta biblioteca:
http://www.codethinked.com/post/2010/03/17/Bundler-Now-Supports-Css-And-less.aspx
Añadiéndolo a mi propia pregunta porque podría ayudar a otros.
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 lo cual también escribí una herramienta de compilación personalizada de Visual Studio que se ejecuta utilizando el archivo JS (en lugar del puerto .NET), puede consultar la fuente aquí: https://github.com/paultyng/JsBuildTools
O también está en la galería de extensiones bajo JsBuildTools .
Phil Haack al rescate: http://haacked.com/archive/2009/12/02/t4-template-for-less-css.aspx
Siempre que desee tener algo generado en su solución en tiempo de compilación, T4 suele ser el camino a seguir ...
También hay otra forma de precompilar durante el desarrollo.
El proyecto sin punto presenta un compilador de línea de comandos (dotless.Compiler.exe) que puede compilar y minimizar el CSS.
También puede usar el compiler.exe con el parámetro --watch donde seguirá ejecutándose y escaneará su archivo de entrada en busca de cambios, regenerándose cada vez que realice cambios en el archivo. De esta manera te haces independiente de Visual Studio.
Todos,
Después de usar casi todas las alternativas discutidas aquí y no estar satisfecho, escribí un complemento del compilador LessCss para Visual Studio. Toma archivos .less y genera archivos .css solo cuando el archivo .less cambia. Utiliza el último y mejor compilador de less.js.
Descarga la extensión firmada.
Acabo de enviarlo a la galería de extensiones de VS. Esperamos que esté disponible pronto, pero mientras tanto, instale (o compile y luego instale) y verifíquelo.