11

我有一个 ASP.NET MVC 应用程序,我目前使用 SquishIt 帮助将我的所有 CSS 和 javascript 文件捆绑到一个从网络服务器下载的单个元素中,以便每次点击我的网站。我知道最近MVC 引入了自己的 bundler。有没有人比较过他们两个?在某些情况下,一种比另一种更好吗?还是它们基本相同?使用 MVC 捆绑器,IIS 是否仍需要对站点目录的写入权限?

您可能有的任何和所有想法和评论将不胜感激。

谢谢。

4

2 回答 2

4

我对此有很大的偏见,但这是一个很好的问题——我没有尽可能多地考虑这个问题,但我已经开始了。

SquishIt 实际上不需要对文件系统的写访问 - 它有一个缓存捆绑机制,无需对站点目录进行写访问即可工作(它将捆绑缓存在内存中并通过特殊的控制器/处理程序提供服务)。不确定 MS 产品是否具有此功能。

两者都在运行时工作并产生非常好的调试体验。

两者都具有使用预处理器(.less、coffeescript 等)的相似机制。MS 的产品似乎更灵活一些,但使用起来可能更笨拙。 SquishIt 的预处理行为是根据 rails 中的资产管道建模的,并且不提供文件扩展链之外的任何方法来控制应用预处理器的顺序。

两者都允许包含目录和文件。SquishIt 还支持将任意 javascript 或 CSS 片段(从数据库等检索)添加到捆绑包中,我在 MS 产品中没有看到类似的东西。

SquishIt 有一个扩展点,允许将您的输出文件写入 CDN - 我在 MS 产品中还没有看到类似的东西。

希望其他人能填补这里的空白——我会尽量记住在我了解更多信息时回来更新。

于 2013-02-05T21:51:36.250 回答
4

我没有像@AlexCuse 那样研究细节和可扩展性点等,但他的总体看法似乎是我的。

Squishit 似乎有优势。

对我来说(而且我认为我必须以某种方式遗漏明显的东西- 但我没有时间/不愿意编写自己的自定义 IBundleOrderer 实现,并且在文档/谷歌搜索中找不到我期望的解决方案)

MVC / MS 产品有一个 MASSIVE FAIL ......

我看不出我怎样才能让它简单地尊重我声明的脚本和 css 文件的顺序!

出于显而易见的原因,这完全吸了球。(即它彻底搞砸了我的应用程序——在我的大型复杂应用程序中到处都是 20 多个小 css / jscript 错误——那些令人沮丧的难以确定的小显示错误和奇怪的 js 怪癖)

Rick Anderson 说“添加自定义 IBundleOrderer 实现,但显式添加每个文件不太容易出错。” 但我看不到如何做后者 - 我明确地使用 .Include( 为每个文件。主要是我的订单得到了尊重,但令人讨厌的是不完全 - 显然一些默认规则开始发挥作用,系统决定它比我更了解.

诚然,这里必须有一个简单的答案 - 但我找不到它,所以对我来说这是一个 MASSIVE MASSIVE FAIL,这意味着我现在要麻烦从 MS 实施恢复到 Squishit,这很好地完成了工作,谢谢你 !

NB 也有问题 1. 它缩小 js 的方式......它引入的错误我只是不需要。公平地说,我确实对 Squishit 有一些问题,但很容易解决。2.缩小CSS的方式

Minification failed. Returning unminified contents.

我正在恢复使用 Squishit。

于 2013-03-12T06:46:04.107 回答