0

Yeoman 生成的 Gruntfile.js 在 grunt 构建期间死亡:

Running "rev:dist" (rev) task
dist/public/app/app.js >> b90d2f58.app.js
dist/public/app/vendor.js >> 2deb5480.vendor.js
Warning: Unable to read "dist/public/bower_components/uri.js" file (Error code: EISDIR). Used --force, continuing.

显然它将 uri.js 组件目录解释为文件!一种简单的解决方法是将 uri.js 组件重命名为 uri_js 或类似名称。但与其这样做,是否有一个简单的开关可以添加到执行哈希的实用程序以知道“uri.js”不是文件???我已经尝试将“过滤器:'isFile'”添加到 Gruntfile 中以 *.js 作为模式的每个位置,但无济于事。

任何已经看到这个的人,您的帮助表示赞赏。现在我只是在做 grunt build --force。谢谢

4

1 回答 1

0

我终于发现可以从重命名过程中排除这个 bower_component 。关键是 rev 片段中文件的顺序取决于选择的顺序。所以我修改了我的 Gruntfile.js 的这一部分……一切都很好。

// Renames files for browser caching purposes
rev: {
  dist: {
    files: {
      src: [
        '<%= yeoman.dist %>/public/{,*/}*.js',
        '<%= yeoman.dist %>/public/{,*/}*.css',
        '<%= yeoman.dist %>/public/assets/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
        '<%= yeoman.dist %>/public/assets/fonts/*',
        '!<%= yeoman.dist %>/public/bower_components/uri.js'
      ]
    }
  }

关键的补充是最后一块:

        '!<%= yeoman.dist %>/public/bower_components/uri.js'

我希望这可以帮助其他人解决这个问题!

于 2015-07-25T17:15:33.300 回答