Grunt-uglify递归

时间:2014-06-13 05:57:13

标签: javascript gruntjs uglifyjs grunt-contrib-uglify

我有一组包含* .dev.js文件的子文件夹。对于目录树中的每个.dev.js文件,我需要grunt来uglify那些并在源文件旁边创建uglified文件。 以下是我尝试这样做的方法:

uglify: {
  options: {
    banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
  },
  dist: {
    files: {
      src: '/folder/**/*.dev.js',
      ext: '.js',
      flatten: true,
      expand: true
    }
  }
}

但这会产生错误:

  

跑步&#34; uglify:dist&#34; (uglify)任务   文件src创建:13.49 kB→5.62 kB

     
    

由于src文件为空,因此未写入目标ext。     警告:对象为true没有方法&#39; indexOf&#39;使用--force继续。

  

1 个答案:

答案 0 :(得分:0)

我看到了你的问题,因为我有同样的问题,每个看到这个问题的答案(像我一样)是:

  • 您正在使用“src:'/ folder / ** / * .dev.js'”
  • 错误出现在第一个斜杠(/ folder)中,grunt / nodejs正在查看驱动程序根目录中的文件夹“folder”,而不是在应用程序根目录中(例如c:\ folder或OSX \ folder)。
  • 解决方案是删除第一个斜杠或在斜杠“。\ folder”之前使用一个点,完整的解决方案应该是:

    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
      },
      dist: {
        files: [{
          src: './folder/**/*.dev.js',
          ext: '.js',
          flatten: true,
          expand: true
        }]
      }
    }
    

另外,不要问我为什么我只是在1小时前了解grunt,你需要但javascript数组[{}]中的文件值(不仅仅是花括号),隔离“files”对象看起来像这样:

    files: [{
      src: './folder/**/*.dev.js',
      ext: '.js',
      flatten: true,
      expand: true
    }]