6

我正在尝试设置 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)任务警告:无法写入“build/minified”文件(错误代码:EISDIR)。使用 --force 继续。

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

我正在运行 grunt v0.4.0rc2

4

3 回答 3

3

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

有关详细信息,请参阅通配模式指南。

于 2013-04-20T08:15:35.977 回答
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',
            ]
        }
    },
于 2016-01-12T15:04:47.277 回答
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';
    }
  };

它应该解决问题。

于 2013-03-21T22:57:33.563 回答