Неустранимая ошибка: этот сокет закрывается, когда я тестирую grunt-contrib-imagemin
Я тестирую плагин grunt-contrib-imagemin для jpg minify. Но это всегда не удавалось, поскольку выполняется задача "imagemin:dynamic" (imagemin). Неустранимая ошибка: этот сокет закрыт.
Source :
grunt.initConfig({
imagemin: { // Task
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 ответа
Проблема:
когда делаешь
npm install
Вы получаете ошибку:
? Request to https://raw.github.com/imagemin/jpegtran-bin/3.0.2/vendor/win/x64/jpegtran.exe failed
? jpegtran pre-build test failed
i compiling from source
× GotError: Request to http://downloads.sourceforge.net/project/libjpeg-turbo/1.4.0/libjpeg-turbo-1.4.0.tar.gz failed
at ClientRequest.<anonymous> (YourApp\node_modules\grunt-contrib-imagemin\node_modules\imagemin\node_modules\imagemin-jpegtran\node_modules\jpegtr
n-bin\node_modules\bin-build\node_modules\download\node_modules\got\index.js:177:7)
at ClientRequest.g (events.js:199:16)
at ClientRequest.emit (events.js:107:17)
at Socket.socketErrorListener (_http_client.js:271:9)
at Socket.emit (events.js:107:17)
at net.js:459:14
at process._tickCallback (node.js:355:11)
aused By: Error: read ECONNRESET
at exports._errnoException (util.js:746:11)
at TCP.onread (net.js:559:26)
gifsicle@3.0.1 postinstall YourApp\node_modules\grunt-contrib-imagemin\node_modules\imagemin\node_modules\imagemin-gifsicle\node_modules\gifsicle
node lib/install.js
? Request to https://raw.github.com/imagemin/gifsicle-bin/3.0.1/vendor/win/x64/gifsicle.exe failed
? gifsicle pre-build test failed
i compiling from source
× GotError: Request to http://www.lcdf.org/gifsicle/gifsicle-1.87.tar.gz failed
at ClientRequest.<anonymous> (YourApp\node_modules\grunt-contrib-imagemin\node_modules\imagemin\node_modules\imagemin-gifsicle\node_modules\gifsic
e\node_modules\bin-build\node_modules\download\node_modules\got\index.js:177:7)
at ClientRequest.g (events.js:199:16)
at ClientRequest.emit (events.js:107:17)
at Socket.socketErrorListener (_http_client.js:271:9)
at Socket.emit (events.js:107:17)
at net.js:459:14
at process._tickCallback (node.js:355:11)
aused By: Error: read ECONNRESET
at exports._errnoException (util.js:746:11)
at TCP.onread (net.js:559:26)
optipng-bin@3.0.2 postinstall YourApp\node_modules\grunt-contrib-imagemin\node_modules\imagemin\node_modules\imagemin-optipng\node_modules\optipng-b
n
node lib/install.js
? Request to https://raw.github.com/imagemin/optipng-bin/3.0.2/vendor/win/optipng.exe failed
? optipng pre-build test failed
i compiling from source
× GotError: Request to http://downloads.sourceforge.net/project/optipng/OptiPNG/optipng-0.7.5/optipng-0.7.5.tar.gz failed
at ClientRequest.<anonymous> (YourApp\node_modules\grunt-contrib-imagemin\node_modules\imagemin\node_modules\imagemin-optipng\node_modules\optipng
bin\node_modules\bin-build\node_modules\download\node_modules\got\index.js:177:7)
at ClientRequest.g (events.js:199:16)
at ClientRequest.emit (events.js:107:17)
at Socket.socketErrorListener (_http_client.js:271:9)
at Socket.emit (events.js:107:17)
at net.js:459:14
at process._tickCallback (node.js:355:11)
aused By: Error: read ECONNRESET
at exports._errnoException (util.js:746:11)
at TCP.onread (net.js:559:26)
Причина:
grunt-contrib-imagemin не может загрузить и протестировать 3 зависимости
imagemin-gifsicle
imagemin-OptiPNG
imagemin-jpegtran
Решение
установить версию grunt-contrib-imagemin 0.9.4
npm cache clear npm uninstall grunt-contrib-imagemin npm install --save-dev grunt-contrib-imagemin@.0.9.4
gifsicle
Загрузите gifsicle.exe 32 бит отсюда
распакуйте его
создайте папку с именем vendor в yourapp\node_modules\grunt-contrib- imagemin\node_modules\imagemin\node_modules\imagemin-gifsicle\node_modules\gifsicle\скопировать извлеченный файл gifsicle.exe в папку поставщика
Теперь вы исправили проблему с Gifsicle. не выходи, еще два, чтобы пойти:)
OptiPNG
Загрузите файл optipng.exe отсюда и создайте папку с именем vendor в yourapp \ node_modules \ grunt-contrib- imagemin \ node_modules \ imagemin \ node_modules \ imagemin-optipng \ node_module \ optipng-bin \
скопируйте извлеченный файл optipng.exe здесь. Теперь вы исправили проблему с optipng. не выходи еще один, чтобы пойти:)
jpegtran
Скачайте jpegtran.exe и libjpeg-62.dll поместите их в папку поставщика внутри
yourapp\node_modules\grunt-contrib- imagemin\node_modules\imagemin\node_modules\imagemin-jpegtran\node_module\jpegtran-bin\
Ура, вы сделали. и ваш
Grunt imagemin:dist
команда будет выполнена успешно
Помните
если вы установите grunt снова, что приведет к установке grunt-contrib-imagemin, эти папки не будут перезаписаны. Однако для первой и чистой установки вам необходимо выполнить следующие шаги.
Попробуйте переустановить grunt-contrib-imagemin:
npm cache clean
npm install grunt-contrib-imagemin --save-dev
У меня та же проблема, атм. Я попробовал старую версию, и она отлично работала. В репозитории git есть проблема, поэтому вы не одиноки в этом;)
https://github.com/gruntjs/grunt-contrib-imagemin/issues/273
Согласно Github Ticket # 273: (Неустранимая ошибка: этот сокет закрыт), это вызвано проблемой jpegtran-bin # 54. Оба выпуска решены и закрыты.
Установка grunt-contrib-imagemin 0.9.2 решила это для меня, запустив
npm cache clean
npm install grunt-contrib-imagemin --save-dev