2

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-contrib-imagemin の Grunt によって提供される例を含む構文スタイル

参照: 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
      }]

何か考えや提案はありますか?

4

2 に答える 2

4

続きとして・・・

"grunt-contrib-imagemin": "^1.0.0" を "grunt-image": "^1.2.1" に交換し、その後 Gruntfile を更新することで、簡単な回避策でこの問題をうまく解決しました。 imageminタスクをimageタスクに置き換えることにより、js...

ローカル ビルドと 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 に関する元のバグ/問題の解決策はまだ決定していません。

どんなアイデアでも大歓迎です。乾杯!

于 2016-01-13T18:50:53.203 に答える
0
  1. 消去node_modules

  2. package.json"grunt-contrib-imagemin": "1.0.0" および "vinyl-fs": "2.3.1" を使用するように変更

  3. 行うnpm install
于 2016-07-07T08:32:20.883 に答える