Grunt多任务在构建时抛出EISDIR错误

时间:2013-01-22 06:24:24

标签: gruntjs uglifyjs

我正在尝试设置grunt来缩小src目录中的一些js文件并将它们复制到构建目录中。在grunt task documentation之后,我相信以下配置应该有效。

uglify: {
    dist: {
      files: [
        {
          expand: true,     // Enable dynamic expansion.
          cwd: 'src/js/',   // Src matches are relative to this path.
          src: ['**/?.js'], // Actual pattern(s) to match.
          dest: 'build/minified/',   // Destination path prefix.
          ext: '.min.js'    // Dest filepaths will have this extension.
        }
      ]
    }
  }

当我运行咕噜声时,我收到消息

  

运行“uglify:dist”(uglify)任务   警告:无法编写“build / minified”文件(错误代码:EISDIR)。使用--force继续。

如果我将定义切换为使用手动文件路径,它可以正常工作。文档不正确吗?或者我使用它错了?

我正在运行grunt v0.4.0rc2

3 个答案:

答案 0 :(得分:3)

更新grunt并将src: ['**/?.js']替换为src: ['**/*.js']

有关详细信息,请参阅globbing patterns上的指南。

答案 1 :(得分:1)

有一个类似的问题,我在加载结构文件时遇到问题:

show

显然,gurnt与包含bower_components/Chart.js/Chart.min.js的目录进行斗争。我找到了解决问题的解决方案:https://github.com/cbas/grunt-rev/issues/29

基本上你明确删除了rev部分中的问题目录。

即,这有效:

.js

答案 2 :(得分:0)

修改node_modules / grunt-contrib-copy / tasks / copy.js中的detectDestType函数,如下所示:

var detectDestType = function(dest) {
    if (grunt.util._.endsWith(dest, path.sep)) {
      return 'directory';
    } else {
      return 'file';
    }
  };

应该解决这个问题。