usemin的好处?

时间:2014-08-21 16:15:58

标签: javascript build gruntjs build-process grunt-usemin

我最近接受了一个使用usemin / uglify(与Grunt)进行脚本连接/缩小的新项目,但我似乎无法找到usemin的好处。只是它使用html模板作为配置吗?看起来通过uglify来做它会是一个更好的解决方案。使用usemin有什么好处?

1 个答案:

答案 0 :(得分:4)

usemin做什么用?

usemin将使用一组 CSS或JS并执行以下操作:

  1. 连接HTML中usmin块中找到的文件
  2. uglify或cssmin连接文件
  3. 使用基于文件内容的哈希修改输出文件
  4. 使用对usemin输出文件
  5. 的单个引用替换css / scripts块

    这提供了哪些好处?

    首先,按照usemin块中列出文件的顺序进行连接。因此,如果您有一个JS模块/脚本依赖于另一个首先加载的模块/脚本,您可以轻松地在HTML中查看顺序并进行编辑。

    当然,连接一个充满脚本的目录可以在没有usemin的情况下完成,但是你最终会在你的gruntfile中处理它。哪一个更好 - 在HTML或gruntfile中?这是你的电话,基于你正在做的工作。

    其次,使用修订版哈希更新的HTML很不错。如果块中的文件在推送之间更新,则随着哈希值的变化,它会为您缓存。

    我遇到的常见问题 ......其他人也遇到过:

    • 如果您有一个巨大的脚本列表,那么每次脚本更改时调整HTML都会很麻烦。我在使用SPA框架时遇到过这种情况,并且使用了从LESS生成的一组疯狂的CSS文件。你可以说两种情况下的根本原因都是不同的工具/技术......但是usemin并没有使这两种情况变得更容易。

    • usemin块目录语法很笨拙。 gruntfile和HTML中都有目录。为了让它有意义,你必须稍微玩一下。

    • 如果你的文件数量非常少,就像一两个文件一样,使用minmin是过度的。

    底线就像所有工具一样,有一些甜蜜的地方,usemin会让事情变得更容易......或更难。如果您有一些想要连接和缩小的文件,usemin可以使这个易于管理。如果你有数百个文件?你可能不想用usemin。