问题 YUI压缩器和.NET应用程序


我想使用YUI Compressor(原始版本)并将其用作典型MS构建过程(Visual Studio 2008,MSBuild)的一部分。

有没有人对此有任何指导或想法?例如,合并到项目中的好方法,如何处理现有的CSS和JS引用等。

我很高兴听到YUI Compressor .NET和替代品的好处,但我对使用原始版本更感兴趣。

谢谢 斯科特


11015
2017-08-18 22:59


起源

在这里问了一个类似的问题: stackoverflow.com/questions/1295395/... - Alex


答案:


我用两个。 YUI压缩器是命令行,易于集成到任何构建过程中。我让它在rake中运行没有任何问题。

在部署时,最常见的是在就地执行javascript / css压缩。这样您就不必更新JS引用。但我在我的网站上使用另一种方法。我将压缩文件创建为 *-min.js要在我的页面上包含脚本或css文件,我调用服务器端方法:

<%= ScriptSrc("~/assets/myscript.js") %>
<%= LinkSrc("~/assets/main.css") %>

这些方法执行以下操作:

  1. 展开应用程序相对路径
  2. 在末尾添加版本字符串(用于缓存失效)
  3. 根据我们是否处于调试模式,在完整脚本和缩小版本之间进行选择。

在调试模式下, ScriptSrc 可能输出这样的东西:

<script type =“text / javascript”src =“http://stage.myapp.com/assets/myscript.js?v=1.2”> </ script>

但在生产中它会加载缩小版本:

<script type =“text / javascript”src =“http://stage.myapp.com/assets/myscript-min.js?v=1.2”> </ script>

这样做的好处之一是我只需更改即可在完整版本和缩小版本之间切换 web.config,这可以帮助调试。


9
2017-08-18 23:14





请参考这篇文章: 如何在YUI Compressor for .NET中使用Visual Studio的Post-build事件 


3
2017-08-28 09:37





因为YUI Compressor只是一个命令行工具,所以您可以将其称为Pre或Post Build操作的一部分。 (如果你深入研究MSBuild,你可以让它只在文件发生变化时运行,加快你的常规构建;当你的项目文件中的自定义MSBuild操作时,VS非常宽松。)

您可以使用Gabe的答案作为如何使用这种设置进行开发的指南;你也可以在 Render 比方说,一个母版页翻译你所有的非缩小网址 <head> 用缩小的网址(虽然有点棘手,但是 <script> 标签将显示在中间 Text 的财产 LiteralControlS)。


1
2017-08-25 00:08





我已经使用编译器指令作为我的脚本包括 - 例如(在母版页中);

  ...
  <% #if RELEASE %>
    <script src="Scripts/combined.min.js" type="text/javascript"></script>
  <% #else %>
    <script src="Scripts/myscript1.js" type="text/javascript"></script>
    <script src="Scripts/myscript2.js" type="text/javascript"></script>
  <% #endif %>
</body>
</html>

然后在构建过程中,我将各种.js文件合并为一个conbined.min.js文件。


0
2017-07-15 14:50