繁体   English   中英

如何使用grunt.js缩小整个文件夹的内容

[英]how to minify a whole folder content using grunt.js

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

module.exports = function(grunt) {

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

};

是的,如果您只想串联并缩小一级scripts目录中的所有.js文件,那是正确的。

例如,如果scripts/包含a.jsb.js以及foo/目录, b.js得到a.js + b.js的串联和缩小结果,但foo/目录中没有任何内容。

如果还要将所有内容都保存在foo/目录(以及所有其他嵌套目录)中,该怎么办? 将表达式从['scripts/*.js']更改为['scripts/**/*.js'] 。js ['scripts/**/*.js']或任何最小匹配表达式: https : //github.com/gruntjs/grunt/blob/master/docs /api_file.md#gruntfileexpand

由于grunt min任务使用expandFiles函数,因此您可以使用任何minimatch表达式: 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'
    }
  }
});

};

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM