Неустранимая ошибка: этот сокет закрывается, когда я тестирую 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

Решение

  1. установить версию grunt-contrib-imagemin 0.9.4

    npm cache clear
    
    npm uninstall grunt-contrib-imagemin
    
    npm install --save-dev grunt-contrib-imagemin@.0.9.4
    
  2. gifsicle

    Загрузите gifsicle.exe 32 бит отсюда

    распакуйте его
    создайте папку с именем vendor в yourapp\node_modules\grunt-contrib- imagemin\node_modules\imagemin\node_modules\imagemin-gifsicle\node_modules\gifsicle\

    скопировать извлеченный файл gifsicle.exe в папку поставщика

    Теперь вы исправили проблему с Gifsicle. не выходи, еще два, чтобы пойти:)

  3. OptiPNG

    Загрузите файл optipng.exe отсюда и создайте папку с именем vendor в yourapp \ node_modules \ grunt-contrib- imagemin \ node_modules \ imagemin \ node_modules \ imagemin-optipng \ node_module \ optipng-bin \

    скопируйте извлеченный файл optipng.exe здесь. Теперь вы исправили проблему с optipng. не выходи еще один, чтобы пойти:)

  4. 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
Другие вопросы по тегам