5

私はこれを半日以上解決しようとしています。

grunt を使用してビルドする angularjs プロジェクトがあります。

コマンドを実行gruntすると、次のようになります。

``` "concurrent:dist" (同時) タスクの実行

Running "svgmin:dist" (svgmin) task
Total saved: 0 B

Done, without errors.


Execution Time (2014-09-23 21:53:55 UTC)
loading tasks   7ms  ▇▇▇▇▇▇ 11%
svgmin:dist    58ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 89%
Total 65ms
    Warning: Running "imagemin:dist" (imagemin) task
Fatal error: Object #<DestroyableTransform> has no method 'apply'


Execution Time (2014-09-23 21:53:55 UTC)
imagemin:dist  868ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 99%
Total 876ms Use --force to continue.

    Aborted due to warnings.

```

GruntFile.js の imagemin タスクは次のとおりです。

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

インターウェブ上で私を助けるものは何も見つかりません。この未解決の問題を見つけましたが、まだ誰も応答していません: https://github.com/gruntjs/grunt-contrib-imagemin/issues/254

ありがとう。

4

4 に答える 4

2

要するに、私は使用してFedoraおり、私の問題は次の方法で解決されました。

(sudo) yum install optipng

これが長い答えです。

この問題は、エラー メッセージからはあまりわからないため、明らかではありませんでした。実際には、4 つの依存関係の 1 つまたは複数が欠落していたことを意味します。

gifsicle — Compress GIF images
jpegtran — Compress JPEG images
optipng — Compress PNG images
svgo — Compress SVG images

そして、それらのバイナリは OS に依存します。

問題解決プロセスは次のとおりです。

  1. インストールを再度実行して、インストールされていないものを確認します。npm install grunt-contrib-imagemin
  2. 失敗したコンポーネントをググって、OS にインストールする方法を確認してください。不足しているものをすべてインストールします。(まあ、ステップ 1 を繰り返す必要がある場合、同じ失敗メッセージが表示されたので、役に立ちませんでした)
  3. その後、imagemin タスクを再度実行してみてください。成功を祈っている。
于 2014-10-22T14:29:46.897 に答える
1

imagemin の作者/@kevva がの GitHub の問題についてコメントしたようgrunt-contrib-imagemin、問題は、更新する PR とmozjpeg現在のバージョンへのその他の依存関係がまだ含まれていないことです。

サポートされていないバージョンの imagemin-mozjpeg を使用しています (grunt-contrib-imagemin は、ストリーム ベースのプラグインをまだサポートしていません)。これを試してnpm install imagemin-mozjpeg@1

...

ええ、それらは imagemin で問題なく動作します。しかし、grunt-contrib-imagemin はまだ imagemin の依存関係を 2.0.0 に更新していないため (昨日 04b8c10 にマージされたばかりです)、古い API を使用しています。

于 2014-10-22T15:58:03.190 に答える