不是单独提及每个js
,这是缩小和连接整个 js 文件夹的方法吗?
module.exports = function(grunt) {
grunt.initConfig({
min: {
dist: {
src: ['scripts/*.js'],
dest: 'dist/built.min.js'
}
}
});
};
不是单独提及每个js
,这是缩小和连接整个 js 文件夹的方法吗?
module.exports = function(grunt) {
grunt.initConfig({
min: {
dist: {
src: ['scripts/*.js'],
dest: 'dist/built.min.js'
}
}
});
};
是的,如果您只想将目录.js
中的所有文件连接并缩小scripts
一层,这是正确的。
例如,如果scripts/
包含a.js
andb.js
和foo/
目录,您将获得a.js
+的连接和缩小结果,b.js
但foo/
目录中没有任何内容。
如果您还想获取foo/
目录(以及所有其他嵌套目录)中的所有内容怎么办?将表达式从更改['scripts/*.js']
为['scripts/**/*.js']
-- 或任何 minimatch 表达式:
https ://github.com/gruntjs/grunt/blob/master/docs/api_file.md#gruntfileexpand
您可以使用任何 minimatch 表达式,因为 gruntmin
任务使用该expandFiles
函数:
https ://github.com/gruntjs/grunt/blob/master/tasks/min.js#L21
在这个任务中使用 minimatch 表达式的缺点是很难理解文件将以什么顺序连接,这通常非常重要。如果这很重要,请小心。
另外,请注意新版本的 grunt ( 0.4
) 即将推出。这将使此答案过时,因为min
任务已更改0.4
(但仍将支持 minimatch 表达式)。
如果您的文件夹仅包含 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'
}
}
});
};
通过这样做,您可以最小化文件夹的所有 js 文件,foo
甚至嵌套文件夹文件。我建议在最小化之前使用 cocat js 文件。