2017-05-26 7 views
1

ember-cli-imagminアドオンのlossyPNGプロパティを有効にして、私の.png用の小さなファイルサイズを作成しようとしています。依存関係が私のpackage.json内のオブジェクトember-cli-imagemin lossyPNG ImageMin.pngquantは関数ではありません

imagemin: { 
    interlaced: true, 
    optimizationLevel: 3, 
    progressive: true, 
    lossyPNG: true, 
    pngquant: { 
    speed: 1, 
    quality: 80 
    } 
} 

が含まれています:しかし

{ ... 
    "ember-cli-imagemin": "0.4.0", 
    "imagemin": "3.2.2", 
    "imagemin-pngquant": "4.2.2", 
    ... 
} 

、私は燃えさしのビルドを実行するたびに、私は、次の取得エンバー-CLI-build.jsマイEmberAppはとても似imagemin含みエラー:

The Broccoli Plugin: [object Object] failed with: 
TypeError: ImageMin.pngquant is not a function 

このエラーは私にこの点を指摘していますline in broccoli-imagemin。 ember-cli-build.jsでlossyPNGをfalseに設定すると、エラーは表示されませんが、PNGはpagespeedの結果に基づいてさらに最適化できます。 png画像をさらに最適化するためにpngquantを使用できるようにするには、何が欠けていますか?

答えて

3

broccoli-imageminember-cli-imageminに依存)が問題です。 2014年11月から更新されていないため、以前のバージョンのイメージンを使用していますが、package.json specificationではイメージングバージョン3.0を使用できます。 ImageMin v3.2.0でpngquantはremoved as a default propertyでした。ですから、あなたのpackage.jsonにimagemin v3.1.0のインストールを強制するとうまくいくはずです。

imageminの最新バージョンを使用する場合は、this PRをご覧ください。私はthat branchを直接使用しようとします。 You can install that branch directly from the repoと:

ember install https://github.com/kanongil/ember-cli-imagemin.git#v5-imagemin 

このブランチは、イメージの仕組みを変更します。オプションを渡す代わりに、使用したいプラグインを渡し、そのオプションを直接渡すように見えます。

var app = new EmberApp({ 
    imagemin: { 
    plugins: [ 
     require('imagemin-jpegtran')({ progressive: true }), 
     require('imagemin-pngquant')({speed: 1, quality: 80}), 
     require('imagemin-svgo')() 
    ] 
    } 
}); 
関連する問題