0

不是单独提及每个js,这是缩小和连接整个 js 文件夹的方法吗?

module.exports = function(grunt) {

grunt.initConfig({
  min: {
    dist: {
      src: ['scripts/*.js'],
      dest: 'dist/built.min.js'
    }
  }
});

};
4

2 回答 2

1

是的,如果您只想将目录.js中的所有文件连接并缩小scripts一层,这是正确的。

例如,如果scripts/包含a.jsandb.jsfoo/目录,您将获得a.js+的连接和缩小结果,b.jsfoo/目录中没有任何内容。

如果您还想获取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 表达式)。

于 2012-12-11T08:10:55.467 回答
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'
    }
  }
});

};

通过这样做,您可以最小化文件夹的所有 js 文件,foo甚至嵌套文件夹文件。我建议在最小化之前使用 cocat js 文件。

于 2012-12-12T20:08:28.537 回答