2016-04-29 10 views
7

私のマシンにGulpをインストールしたプロジェクトを実行しています。 Gulp Watchを実行しているときに、フォルダに新しいイメージを追加すると、gulp-imageminがプロセスをクラッシュさせます。私はすべての権限をそのフォルダで正しく(複数回チェックして)設定しており、画像にも正しい権限があります。gulp-imageminエラー:optipng:バイナリファイルを実行できません

プロセスは、次のエラースロー:私はフォルダにがぶ飲みを実行するたびに

Error: Command failed: /Users/robbert/Sites/wordpress_cyklo/node_modules/gulp-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/vendor/optipng -strip all -clobber -force -fix -o 2 -out /var/folders/kj/wydtr_t92hqgymv2d2v43pjw0000gr/T/9ab534f4-267f-46cb-b99f-372028e6ed5b /var/folders/kj/wydtr_t92hqgymv2d2v43pjw0000gr/T/eabb0414-f9db-4b6f-8242-4c8d25004e1d /Users/robbert/Sites/wordpress_cyklo/node_modules/gulp-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/vendor/optipng: /Users/robbert/Sites/wordpress_cyklo/node_modules/gulp-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/vendor/optipng: cannot execute binary file

を、私は私のベイグラントVMを通してそれを実行した場合を除いて、同じエラーを取得します。これをどうやって解決するのですか?私のVMはかなり遅いので、私は主にOS上でGulpを実行できるようにしたいと考えています。

編集:ここでは、画像のための一気だ:

// ### Images 
// `gulp images` - Run lossless compression on all the images. 
gulp.task('images', function() { 
    return gulp.src(globs.images) 
    .pipe(imagemin({ 
     progressive: true, 
     interlaced: true, 
     svgoPlugins: [{removeUnknownsAndDefaults: false}, {cleanupIDs: false}] 
    })) 
    .pipe(gulp.dest(path.dist + 'images')) 
    .pipe(browserSync.stream()); 
}); 
+0

あなたの最良のオプションは、最初から全体node_modulesフォルダとnpm installを削除するのですか? thx – rick

+0

@rick私はギャルプに精通していませんが、私は今質問に追加したと思います。 – Rvervuurt

+0

これはmac osx https://github.com/imagemin/optipng-bin/issues/37の既知の問題だったようです – rick

答えて

7

gulp-imageminは、PNG画像を最適化するために、optipngに依存しています。 optipngは、CではなくJavaScriptで書かれたネイティブプログラムです。これは、npm install gulp-imageminのシステムアーキテクチャに対応する適切な実行可能ファイルoptipngがインストールされていることを意味します。

node_modulesフォルダを含むプロジェクト全体を別のシステム(MacOS Xなど)にコピーすると、optipng実行可能ファイルはLinux用になりますMacOS XはLinuxの実行ファイルを実行できません。

明示的にプロジェクトをコピーしていなくても、誤ってnode_modulesフォルダをリポジトリにコミットしても、同じ問題が発生する可能性があります。あなたはgulpfileまたは少なくとも正確な時計のコールを投稿することができます

rm -rf node_modules 
npm install 
関連する問題