我正在使用gruntjs和usemin任务。 我把它添加到我的html文件中:
<!-- build:js scripts/all.js -->
<script src="../../core/module.js"></script>
<script src="../../core/base/alerts/alert-item.js"></script>
<script src="../../core/base/alerts/alerts-list.js"></script>
<script src="../../core/base/base_model.js"></script>
<script src="../../core/base/cursor.js"></script>
<script src="../../core/...<another script>...."></script>
<script src="../../core/...<another script>...."></script>
<script src="../../core/...<another script>...."></script>
<script src="../../core/...<another script>...."></script>
<!-- endbuild -->
如您所见,所有脚本都位于../../core
如何告诉usemin先取../../core/module.js
然后../../core/**/*
而不提及每个文件?
这有可能吗?
答案 0 :(得分:0)
对于grunt任务配置,您可以使用globing模式动态构建文件列表。
在gruntjs文档中查看“Globbing patterns”和“动态构建文件对象”的两个连续段落: http://gruntjs.com/configuring-tasks#globbing-patterns
如果您粘贴了usimin任务配置,则可以帮助您构建正确的模式
答案 1 :(得分:0)
编辑:
根据评论以及您无法控制所有代码的事实,usemin
的替代方法是使用&#39; src&#39;和&#39; dist&#39;目录结构,如sample gruntfile中所示,用于处理批量移动/连接/ uglify。
grunt-watch
配置为copy
,concat
和uglify
来自&#39; src&#39;在改变时。grunt-watch
相同的三项任务的任务在#3中执行。如果你四处寻找,你可以在几个javascript框架中找到这种方法的例子,你可以借用它来修改你的需求。 This article可能有用。
<强>原始强>
基于此以及您今天提出的其他问题,听起来usemin可能不是您需要的正确工具。像require.js之类的东西会削减HTML中脚本标签的数量,但会将需要枚举到不同的文件/位置......你的抱怨似乎是将所有脚本都写成清单/列表中的代码。
Grunt提供了一种集中处理文件的方法,但在复制目录或进行其他类似的低风险批量工作时,最好使用这种方法。因此,您可以找到在没有逻辑的情况下将usemin用于批量加载的方法,但我建议通常不好的做法是加载所有javascripts&#34;。 ...但如果这就是你想要的,我会问你为什么批量连接和uglify不是答案。
随着项目规模或复杂性的增加,清单或明确列出文件的好处变得更加明显。从目录中添加/删除文件的无辜错误可能会导致混淆,并且原因不会立即清除。在HTML中显式列出文件会导致usemin
在目录中缺少错误时抛出错误,之后,您还可以审核目录以查看仍然存在的内容,即使它已不再使用。全球化他们不会提供这些好处。
如果没有清单,可以通过明智地使用VCS和自上次提交后对变更的审查来解决问题...但这并不像说“嘿”那样容易或有趣,<嘿,< em> script.js 被删除了,导致usemin
barf,所以有人欠我一个饮料,用来替换文件并让构建再次运行!&#34;