而不是分别提及每个js
,
这是缩小和连接整个js文件夹的方法吗?
module.exports = function(grunt) {
grunt.initConfig({
min: {
dist: {
src: ['scripts/*.js'],
dest: 'dist/built.min.js'
}
}
});
};
答案 0 :(得分:1)
是的,如果您只想将.js
目录中的所有scripts
文件连接并缩小一层,这是正确的。
例如,如果scripts/
包含a.js
和b.js
以及foo/
目录,则会获得a.js
+ {的连接和缩小结果{1}}但b.js
目录中没有任何内容。
如果您想要获取foo/
目录(以及所有其他嵌套目录)中的所有内容,该怎么办?将表达式从foo/
更改为['scripts/*.js']
- 或任何迷你匹配表达式:
https://github.com/gruntjs/grunt/blob/master/docs/api_file.md#gruntfileexpand
您可以使用任何minimatch表达式,因为grunt ['scripts/**/*.js']
任务使用min
函数:
https://github.com/gruntjs/grunt/blob/master/tasks/min.js#L21
使用minimatch表达式执行此任务的缺点是难以理解将连接文件的顺序,这通常非常重要。如果这很重要,请小心。
此外,请注意,新版本的grunt(expandFiles
)即将推出。这将使这个答案过时,因为0.4
中的min
任务已经更改(但仍然支持minimatch表达式)。
答案 1 :(得分:0)
如果你的文件夹只包含js文件你是对的,但如果你的文件夹有嵌套文件夹,例如,foo
是我们的主要js文件夹,我们在其中有另一个嵌套文件夹loo
并在其中我们也有一些js文件,如:
foo:
mu.js
su.js
loo:
ku.js
wu.js
在这种情况下,您必须以这种方式修改代码:
module.exports = function(grunt) {
grunt.initConfig({
min: {
dist: {
src: 'foo/**/*.js',
dest: 'dist/foo.min.js'
}
}
});
};
通过这样做,您可以最小化foo
文件夹甚至嵌套文件夹文件的所有js文件。我建议在最小化之前使用cocat js文件。