javascript - grunt-contrib-imagemin 任务上的 travis-ci 构建失败(无法准备好未定义的属性 'contents'

标签 javascript gruntjs travis-ci grunt-contrib-imagemin

我在为 grunt-contrib-imagemin 任务构建 travis-ci 期间遇到错误...

Warning: Running "imagemin:dist" (imagemin) task
    Fatal error: Cannot read property 'contents' of undefined

grunt 构建在我的本地计算机上成功运行,但是通过 travis-ci 执行时失败

Gruntfile.js

imagemin: {
      dist: {
        files: [{
          expand: true,
          cwd: '<%= yeoman.app %>/images',
          src: '{,*/}*.{png,jpg,jpeg,gif}',
          dest: '<%= yeoman.dist %>/images'
        }]
      }
    },

本地 Grunt 构建(输出)

Running "imagemin:dist" (imagemin) task
    Minified 9 images (saved 77.32 kB)

    Done, without errors.

    Execution Time (2016-01-13 17:04:49 UTC)
    imagemin:dist  1.6s  100%
    Total 1.6s

Travis CI grunt 构建(输出)

Warning: Running "imagemin:dist" (imagemin) task
    Fatal error: Cannot read property 'contents' of undefined


    Execution Time (2016-01-13 17:00:32 UTC)
    loading tasks    9ms   2%
    imagemin:dist  441ms  98%
    Total 450ms Use --force to continue.

        Aborted due to warnings.

我试图确定在任务中声明 src 的方式是否存在语法问题...但是,情况似乎并非如此...因为我可以成功地在本地完成构建,而不会出现错误一些不同的语法样式,包括 Grunt 为 grunt-contrib-imagemin 提供的示例

引用号:https://github.com/gruntjs/grunt-contrib-imagemin

dynamic: {                         // Another target
      files: [{
        expand: true,                  // Enable dynamic expansion
        cwd: 'src/',                   // Src matches are relative to this path
        src: ['**/*.{png,jpg,gif}'],   // Actual patterns to match
        dest: 'dist/'                  // Destination path prefix
      }]

有什么想法或建议吗?

最佳答案

作为后续...

我已经通过一个简单的解决方法成功解决了这个问题,将“grunt-contrib-imagemin”:“^1.0.0”换成“grunt-image”:“^1.2.1”...并随后更新我的 Gruntfile.js 通过用图像任务替换 imagemin 任务...

本地构建和 Travis CI 构建现在都取得了成功,并取得了相同的结果。

Gruntfile.js

image: {
      dist: {
        files: [{
          expand: true,
          cwd: '<%= yeoman.app %>/images',
          src: '{,*/}*.{png,jpg,jpeg,gif}',
          dest: '<%= yeoman.dist %>/images'
        }]
      }
    },

下面通过本地计算机和 travis-ci 构建输出的示例:

Running "image:dist" (image) task
✔ app/images/npmjs.png -> before=3.75 kB after=158 B reduced=3.59 kB(95.9%)
✔ app/images/bootstrap.png -> before=41.5 kB after=21.93 kB reduced=19.57 kB(47.2%)
✔ app/images/bowerjs.png -> before=17.71 kB after=6.65 kB reduced=11.06 kB(62.5%)
✔ app/images/nodejs.png -> before=8.45 kB after=2.93 kB reduced=5.51 kB(65.3%)
✔ app/images/starterlog.png -> before=34.53 kB after=10.58 kB reduced=23.95 kB(69.3%)
✔ app/images/gruntjs.png -> before=84.38 kB after=27.98 kB reduced=56.4 kB(66.8%)
✔ app/images/firebase.png -> before=32.03 kB after=12.19 kB reduced=19.83 kB(61.9%)
✔ app/images/fontawesome.png -> before=12.01 kB after=5.63 kB reduced=6.38 kB(53.1%)
✔ app/images/angular.png -> before=41.5 kB after=18.63 kB reduced=22.87 kB(55.1%)

Done, without errors.

Execution Time (2016-01-13 17:47:44 UTC)
image:dist  2.6s  99%
Total 2.6s

这个带有 grunt-image 的解决方案正在我的 Angular + Firebase 应用程序上运行...我正在通过 travis-ci 和部署工具 dpl 将其部署到 Firebase Hosting。

但是我仍然没有确定 travis-ci 中 grunt-contrib-imagemin 的原始错误/问题的解决方案

任何想法将不胜感激。干杯!

关于javascript - grunt-contrib-imagemin 任务上的 travis-ci 构建失败(无法准备好未定义的属性 'contents',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34774645/

相关文章:

javascript - 我的浏览器化脚本无法运行

javascript - 用于授权回调的 Travis CI 的 URL 是什么。生成 Github token

android - 如何在travis-ci上显示android模拟器的logcat?

javascript - float 条形图月份对齐问题

javascript - 任何人都可以用一个例子来解释 javascript 中的 namespace 吗?

javascript - 如何使用赋值而不是设置值?

javascript - 浏览器未使用 Grunt Livereload 重新加载

javascript - 用跨度包围 2 个同级元素

gruntjs - 如何设置 grunt + browserify + tsify + babelify?

django - AWS : CodeDeploy for a Docker Compose project?