Grunt contrib-clean with files对象错误'Object#<object>没有'indexOf'方法使用--force继续</object>

时间:2013-12-17 22:06:01

标签: gruntjs

我正在使用grunt contrib-clean来删除缩小的js文件,并希望通过动态指定文件对象来指定文件。当我这样做时,我得到错误:'对象#没有'indexOf方法'使用--force继续。'

以下是我指定的选项。

clean: {
        files: [{
            expand: true,
            cwd: 'js/',
            src: ['**/*.min.js', '!**/data/**', '!**/vendor/**', '!**/jquery/**', '!**/knockout/**'],
        }]
},

clean: { files: [{ expand: true, cwd: 'js/', src: ['**/*.min.js', '!**/data/**', '!**/vendor/**', '!**/jquery/**', '!**/knockout/**'], }] },

这种模式,没有指定文件对象有效,但我很好奇为什么上面的代码失败了。

    clean: {
        src: ['js/**/*.min.js', '!js/**/data/**', '!js/**/vendor/**', '!js/**/jquery/**', '!js/**/knockout/**'],
    },
我在尝试使用cwd进行文件操作时遇到了这个问题,因为我已经在子目录中安装了grunt并且总是尝试向root执行操作,然后我发现了 clean: { src: ['js/**/*.min.js', '!js/**/data/**', '!js/**/vendor/**', '!js/**/jquery/**', '!js/**/knockout/**'], },

任何帮助将不胜感激。

-Greg

1 个答案:

答案 0 :(得分:4)

在您的第一个示例中,您缺少目标名称,这是多任务所必需的。

在第二个示例中,您的目标名称为src

只需添加一个目标名称,第一个示例就可以了(虽然因为files阵列配置中只有一个对象,所以没必要):

clean: {
  target: {
    files: [{
        expand: true,
        cwd: 'js/',
        src: ['**/*.min.js', '!**/data/**', '!**/vendor/**', '!**/jquery/**', '!**/knockout/**'],
    }]
  }
},