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

6

我正在尝试设置grunt来压缩src目录中的多个js文件并将它们复制到build目录。根据grunt任务文档,我相信下面的配置应该可以工作。

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.
        }
      ]
    }
  }

当我运行grunt时,出现以下信息:

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

如果我将定义更改为手动文件路径,则正常工作。文档有误吗?还是我使用不正确?

我正在运行grunt v0.4.0rc2。


我也遇到了这个问题。嗯…… - Glen Selle
1
更新grunt并将 src:['**/?.js'] 替换为 src:['**/*.js'] - mutil
@mutil - 正确,那就是问题所在。如果你想把你的评论作为答案发布,我会接受的。谢谢。 - madcapnmckay
3个回答

3

1

我遇到了类似的问题,无法加载以下结构的文件:

bower_components/Chart.js/Chart.min.js

显然,grunt在包含.js的目录中存在问题。我找到了这个解决方案来解决我的问题:https://github.com/cbas/grunt-rev/issues/29

基本上,你需要在rev部分明确删除问题目录。

例如,这个方法可以解决问题:

rev: {
        files: {
            src: [
                'dist/**/*.js',
                '!dist/bower_components/Chart.js',
            ]
        }
    },

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';
    }
  };

这应该解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接