【问题标题】:Grunt multi-tasks throwing EISDIR error when buildingGrunt 多任务在构建时抛出 EISDIR 错误
【发布时间】:2013-01-22 06:24:23
【问题描述】:

我正在尝试设置 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.
        }
      ]
    }
  }

当我运行 grunt 时,我会收到消息

运行“uglify:dist”(uglify) 任务 警告:无法写入“构建/缩小”文件(错误代码:EISDIR)。使用 --force 继续。

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

我正在运行 grunt v0.4.0rc2

【问题讨论】:

  • 我也遇到了这个问题。嗯。
  • 更新 grunt 并将 src: ['**/?.js'] 替换为 src: ['**/*.js']
  • @mutil - 正确的是问题所在。如果您想发表评论作为答案,我会接受。谢谢。

标签: gruntjs uglifyjs


【解决方案1】:

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

有关更多信息,请参阅globbing patterns 上的指南。

【讨论】:

    【解决方案2】:

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

    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',
                ]
            }
        },
    

    【讨论】:

      【解决方案3】:

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

      它应该可以解决问题。

      【讨论】:

        猜你喜欢
        • 2018-10-12
        • 1970-01-01
        • 2017-09-08
        • 2014-05-12
        • 1970-01-01
        • 2020-04-22
        • 1970-01-01
        • 1970-01-01
        • 2021-06-28
        相关资源
        最近更新 更多