我最近接受了一个使用usemin/uglify(与Grunt一起)进行脚本连接/缩小的新项目,但我似乎找不到usemin的好处是什么。它只是使用html模板作为它的配置吗?看起来通过丑化来解决会是一个更好的解决方案。使用usemin有什么好处?
usemin做什么?
usemin
将获取一组 CSS或JS,并执行以下操作:
- 将HTML 中usmin块中的文件连接起来
- 丑化或cssmin连接的文件
- 使用基于文件内容的哈希修改输出文件
- 将css/scripts块替换为对userin输出文件 的单个引用
这样做有什么好处?
首先,按照文件在用户块中列出的顺序进行连接。因此,如果你有一个JS模块/脚本依赖于另一个先加载,你可以很容易地看到HTML中的顺序并进行编辑。
当然,不使用emin也可以连接一个充满脚本的目录,但是您最终会在gruntfile中处理这个问题。哪个更好——在HTML中还是在gruntfile中?这是你的决定,取决于你所做的工作。
第二,使用修订散列更新的HTML很好。如果块中的文件在两次推送之间被更新,当哈希值改变时,它会为你缓存崩溃。
我遇到的常见问题…而其他人也遇到过:
-
如果您有一个巨大的脚本列表,每次脚本更改时都要调整HTML可能是一件痛苦的事情。我在使用SPA框架时遇到过这种情况,还有一次是使用LESS生成的一组复杂的CSS文件。你可以说这两种情况的根本原因是不同的工具/技术……但usemin并没有让这两种情况变得更容易。
-
usemin块目录语法很笨拙。在gruntfile和HTML中都有命名的目录。
-
Usemin是多余的,如果你有非常少的文件…
底线是,与所有工具一样,有一些甜蜜点,usemin将使事情变得更容易…或困难。如果您有一些想要连接和缩小的文件,那么usemin可以使其易于管理。如果你有数百个文件?你可能不需要usemin