鉴于我的咕噜声uglify设置如下;文件manager.js
会在结果文件foo.js
中被包含两次吗?或者uglify足够智能,以确定不包括manager.js
两次?
...
uglify: {
options: {
compress: true,
},
build: {
files: {
'dist/foo.js': [
'js/manager.js', // Other files depend on this - must be included first
'js/*.js', // Does this mean manager.js will be included twice?
],
}
}
},
文件夹结构:
./ JS / manager.js
./js/bar.js
./js/baz.js
如果uglify抓取文件两次,任何建议如何避免这种情况而不必手动添加每个javascript文件?
答案 0 :(得分:0)
鉴于我的咕噜声uglify设置如下;文件
manager.js
会在结果文件foo.js
中包含两次吗?
不,js/manager.js
的内容将在结果文件中首先显示(即dist/foo.js
),并且 NOT 将使用您当前的{{1}包含两次任务配置。
或者
uglify
是否足够智能以确定不包括uglify
两次?
是的,但实际上manager.js
可以在将grunt
个唯一文件路径传递给Array
之前解决此问题。
摘自Globbing patterns的grunt文档:
此外,为了简化其他复杂的globbing模式,Grunt允许指定文件路径或globbing模式的数组。模式按顺序处理,
uglify
- 前缀匹配,不包括结果集中的匹配文件。 结果集是唯一的。
这里的相关部分是:结果集是唯一的
以下代码示例也在文档中给出:
!
为了证明文档中提到的要点,我们假设我们在// Here, bar.js is first, followed by the remaining files, in alpha order:
{src: ['foo/bar.js', 'foo/*.js'], dest: ...}
目录中存储了以下五个源.js
文件。每个文件的伪内容在文件名下面提供:
<强> js/
强>
manager.js
<强> console.log('manager.js')
强>
a.js
<强> console.log('a.js')
强>
bar.js
<强> console.log('bar.js')
强>
baz.js
<强> console.log('baz.js')
强>
quux.js
如果我们使用上面列出的文件和您当前的console.log('quux.js')
任务配置运行grunt
,结果输出为:
<强> foo.js 强>
uglify
如你所见:
console.log("manager.js"),console.log("a.js"),console.log("bar.js"),console.log("baz.js"),console.log("quux.js");
首先出现一次(即结果集已经单独出现)。console.log("manager.js")
找到的文件)已按字母顺序添加。