我最近接受了一个使用 usemin/uglify (with Grunt) 进行脚本连接/缩小的新项目,但我似乎无法找到 usemin 的好处。只是它使用 html 模板作为配置吗?似乎通过 uglify 来做这件事会是一个更好的解决方案。使用 usemin 有什么好处?
1 回答
usemin 是做什么的?
usemin
将采用一组CSS或JS 并执行以下操作:
- 连接在您的 HTML 中的 usmin 块中找到的文件
- uglify 或 cssmin 连接的文件
- 使用基于文件内容的哈希修改输出文件
- 用对 usemin 输出文件的单个引用替换 css/scripts 块
这样做有什么好处?
首先,按照文件在您的 usemin 块中列出的顺序进行连接。因此,如果您有一个 JS 模块/脚本依赖于首先加载的另一个,您可以轻松地查看 HTML 中的顺序并进行编辑。
当然,连接一个充满脚本的目录可以不用 usemin 来完成,但是你最终会在你的 gruntfile 中处理这个。哪个更好——在 HTML 中还是在 gruntfile 中?那是你的电话,基于你正在做的工作。
其次,使用修订散列更新的 HTML 很好。如果块中的文件在推送之间进行了更新,它会在哈希更改时为您缓存崩溃。
我遇到的常见问题......以及其他人也遇到过:
如果您有大量脚本,那么每次脚本更改时调整 HTML 可能会很痛苦。我在使用 SPA 框架时遇到过这种情况,并且曾经使用从 LESS 生成的一组疯狂的、精心制作的 CSS 文件。你可以说这两种情况的根本原因是不同的工具/技术......但 usemin 并没有让这两种情况变得更容易。
usemin 块目录语法很笨拙。在 gruntfile 和 HTML 中都有命名的目录。你必须稍微玩一下它才能有意义。
如果您的文件数量非常少……比如一两个,那么 Usemin 就过分了。
底线是,与所有工具一样,usemin 可以让事情变得更容易......或更难。如果您有少量文件需要连接和缩小,usemin 可以让这变得易于管理。如果你有数百个文件?你可能不想要usemin。