在.NET环境中优雅地缩小动态生成的javascript?

在.NET环境中优雅地缩小动态生成的javascript?,javascript,.net,minify,Javascript,.net,Minify,我正在通过编程从.NET web应用程序创建javascript文件,并希望在将其传递给客户端之前对其进行缩小。有没有一种有效的方法可以做到这一点?为什么不直接在.NET中使用javascript编写的迷你程序(如果它可以作为JScript代码使用,请尝试一下)。想到Uglify.js…我们使用JSMIN的C#端口: 它工作得很好。嗯,我认为缩小脚本文件需要做三件事: 缩短长变量 删除评论 删除不必要的空白(制表符、空格、回车) 这些都相对简单,可以在运行时替换,但需要编写一些代码。对于变量缩短

我正在通过编程从.NET web应用程序创建javascript文件,并希望在将其传递给客户端之前对其进行缩小。有没有一种有效的方法可以做到这一点?

为什么不直接在.NET中使用javascript编写的迷你程序(如果它可以作为JScript代码使用,请尝试一下)。想到Uglify.js…

我们使用JSMIN的C#端口:


它工作得很好。

嗯,我认为缩小脚本文件需要做三件事:

  • 缩短长变量
  • 删除评论
  • 删除不必要的空白(制表符、空格、回车)
  • 这些都相对简单,可以在运行时替换,但需要编写一些代码。对于变量缩短,请在其范围内找到长度超过(例如2个字母)的相似变量。然后在代码块(变量的范围)中缩写并进行后续操作

    删除注释很简单。删除空白也很容易。对于单线,查找
    /
    并删除,直到回车/换行符换行。空格,用空格替换制表符,用空格替换多个空格,用空格替换回车/换行符换行。

    我手动使用它


    我压缩文件,上传,然后撤销包,所以我有完整的源代码。我只打包生产代码。

    您可以使用,但我不建议您每次用户访问您的网站时都缩小文件。最好在部署新提交之前构建所有文件。看看。

    如果您只想在保存到文件之前缩小C#中的javascript字符串,我会使用或。这两种方法都公开了一个允许您执行此操作的API。下面是一个使用ajax minifier的示例:

    var minifier = new Microsoft.Ajax.Utilities.Minifier();
    var minifiedString = minifier.MinifyJavaScript(unMinifiedString);
    
    使用.net的YUI压缩器:

    var minifiedString = JavaScriptCompressor.Compress(unMinifiedString);
    

    ajax minifier和YUI压缩程序库都可以通过Nuget获得。

    谢谢Matt-这正是我想要的。如果有人想知道为了使用
    Microsoft.ajax.Utilities.minifier而需要添加的DLL引用,MSI默认安装到
    C:\程序文件(x86)\MSBuild\Microsoft\MicrosoftAjax
    现在已经是2016年了,但我在试图找到一个.net库来压缩包含javascript代码的字符串时仍然回到了这一点。我比较了YUI压缩器和MS Ajax缩微器的输出,MS库似乎不仅压缩得更小(例如用逻辑语句替换“if”语句),而且YUI压缩器在压缩包含jquery 2.2.3库的脚本时实际上失败了。我只是在或多或少的默认设置下使用了这两个链接,因此可能是用户错误。最后一个链接(
    YUI
    )更改为:如果有人访问此线程,Microsoft Ajax迷你程序将终止使用。该项目是分叉的,目前在这里得到支持:谢谢Elisue-我正在为用户生成一个脚本文件。我只是想在部署之前缩小一个文件。谢谢你的建议。在很多情况下,这样的方法是可以的——例如,如果页面是MVC操作,那么可以使用输出缓存来减少整页呈现的频率,同时仍然允许配置和其他运行时动态行为。谢谢Mike——我看了一下,看起来不错。我不确定javascript有多少变化,但它看起来有点过时。不确定你最近是否使用过……谢谢Shark,但我没有那么有天赋,而且我没有那么多时间……:)我正在寻找一个库或dll,其中有人已经做了这项工作。也许你可以做一个???PLZ?谢谢Chris-我正在寻找一个自动化的解决方案,但这看起来很有趣。在我的链接列表上。