1

我有一组带有一些 *.dev.js 文件的子文件夹。我需要 grunt 对目录树中的每个 .dev.js 文件进行 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
    }
  }
}

但这给出了一个错误:

运行“uglify:dist”(uglify) 任务文件 src 创建:13.49 kB → 5.62 kB

目标分机未写入,因为 src 文件为空。警告:对象 true 没有方法 'indexOf' 使用 --force 继续。

4

1 回答 1

0

我看到你的问题是因为我有同样的问题,看到这个的其他人(比如我)的答案是:

  • 您正在使用“src:'/folder/**/*.dev.js'”
  • 错误出现在第一个斜杠 (/folder) 中,grunt/nodejs 正在查看驱动器根目录中的文件夹“文件夹”,而不是您的应用程序根目录(例如 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: [{
      src: './folder/**/*.dev.js',
      ext: '.js',
      flatten: true,
      expand: true
    }]
于 2014-10-22T04:00:33.793 回答