1

我使用 Grunt.js 来合并/缩小文件 - 但想使用 1 个常见的 grunt.js 文件来合并/压缩不同网站的多个目录中的文件。最好的方法是什么?

我希望我可以像这样设置 2 个不同的任务:

//ATG INTL US (excluding VIR)
    concat1: {
      dist: {
        src: ['<banner:meta.banner>', '../js/plugins/jquery.tools.min.js','../js/plugins/jquery.validate.min.js','../js/plugins/jcarousellite_1.0.1.min.js','../js/plugins/jquery.jcarousel.min.js','../js/plugins/jquery.qtip-1.0.0-rc3.min.js','../js/plugins/jquery.cookie.js','../js/plugins/jquery.fancybox-1.3.4.min.js','../js/lib/modernizr/modernizr.custom.39125.js','../js/plugins/jquery.select2.min.js'],        dest: '../js/common/plugins.js'
      }
    },
    // ATG INTL US (VIR ONLY)
    concat2: {
      dist: {
        src: ['<banner:meta.banner>', '../js/plugins/jquery.tools.min.js','../js/plugins/jquery.validate.min.js','../js/plugins/jcarousellite_1.0.1.min.js','../js/plugins/jquery.jcarousel.min.js','../js/plugins/jquery.qtip-1.0.0-rc3.min.js','../js/plugins/jquery.cookie.js','../js/plugins/jquery.fancybox-1.3.4.min.js','../js/lib/modernizr/modernizr.custom.39125.js','../js/plugins/jquery.select2.min.js','../include/js/plugins/jquery-ui.selectmenu.js'],        dest: '../js/common/plugins.js'
      }
    },

然后在我想运行它时注册不同的任务:

  grunt.registerTask('default', 'lint qunit mincss concat1 min');

但这似乎行不通,我听说过手表,但不确定这是否行得通。有什么建议么?

4

2 回答 2

1

我想到了!

我可以设置不同的目录:

concat: {
      //ATG INTL US (excluding VIR)
      atgintlus: {
        src: ['<banner:meta.banner>', '../js/plugins/jquery.tools.min.js','../js/plugins/jquery.validate.min.js','../js/plugins/jcarousellite_1.0.1.min.js','../js/plugins/jquery.jcarousel.min.js','../js/plugins/jquery.qtip-1.0.0-rc3.min.js','../js/plugins/jquery.cookie.js','../js/plugins/jquery.fancybox-1.3.4.min.js','../js/lib/modernizr/modernizr.custom.39125.js','../js/plugins/jquery.select2.min.js'],        dest: '../js/common/plugins.js'
      },
      // ATG INTL US (VIR ONLY)
      atgintlvir: {
        src: ['<banner:meta.banner>', '../js/plugins/jquery.tools.min.js','../js/plugins/jquery.validate.min.js','../js/plugins/jcarousellite_1.0.1.min.js','../js/plugins/jquery.jcarousel.min.js','../js/plugins/jquery.qtip-1.0.0-rc3.min.js','../js/plugins/jquery.cookie.js','../js/plugins/jquery.fancybox-1.3.4.min.js','../js/lib/modernizr/modernizr.custom.39125.js','../js/plugins/jquery.select2.min.js','../include/js/plugins/jquery-ui.selectmenu.js'],        dest: '../js/common/plugins.js'
      }
    },

然后注册不同的任务:

 // ATG INTL US task.
  // Run in Command line using Grunt atgintlus
  grunt.registerTask('atgintlus', ['lint','mincss','concat:atgintlus', 'min:atgintlus']);

  // VIR US task.
  // Run in Command line using Grunt atgintlvir
  grunt.registerTask('atgintlvir', ['lint','mincss','concat:atgintlvir', 'min:atgintlvir']);

像梦一样工作!

于 2013-01-27T22:57:10.927 回答
0

对,所以您所做的是创建了一个“多任务”(具有多个目标的任务)。看起来你已经开始了,但你可能想看看我在 grunt.js 上制作的一系列视频,以帮助你进一步了解 grunt.js,这是关于任务的视频。

于 2013-01-28T17:14:07.027 回答