我正在测试jpg minify的插件grunt contrib-imagemin。但它总是失败,因为正在运行"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
}]
}
}
});
发布于 2014-12-12 02:02:14
尝试重新安装grunt-contrib-imagemin:
npm cache clean
npm install grunt-contrib-imagemin --save-dev
发布于 2015-07-03 12:24:01
问题:
在做的时候
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
图像处理-jpegtran
解决方案
npm缓存清除npm uninstall grunt contrib-imagemin npm install --save-dev grunt-contrib-imagemin@.0.9.4
从here下载gifsicle.exe 32位
解压缩
在您的make \node_modules\grunt contrib- imagemin\node_modules\imagemin\node_modules\imagemin-gifsicle\node_modules\gifsicle\上创建一个名为vendor的文件夹
将解压缩的gifsicle.exe复制到供应商文件夹
现在你已经修复了gifsicle的问题。不要退出再多两个去:)
从此处下载optipng.exe,在您的make \node_modules\grunt contrib- imagemin\node_modules\imagemin\node_modules\imagemin-optipng\node_module\optipng-bin\上创建一个名为optipng.exe的文件夹
将解压缩的optipng.exe复制到此处。现在您已经修复了optipng问题。不要退出,再来一次就可以了:)
下载jpegtran.exe和libjpeg-62.dll,将它们放在里面的供应商文件夹中
您可以使用\node_modules\grunt-contrib imagemin\node_modules\imagemin\node_modules\imagemin-jpegtran\node_module\jpegtran-bin\
万岁,你完成了。还有你的
Grunt imagemin:dist
命令将成功完成
记住
如果您再次安装grunt,则会安装grunt-contrib-imagemin,这些文件夹将不会被覆盖。但是,对于第一次干净的安装,您需要完成以下步骤。
发布于 2014-12-12 16:31:48
我的自动取款机也有同样的问题。我试过一个老版本,它工作得很好。在git库中有一个问题,所以在这个问题上你并不孤单;)
https://github.com/gruntjs/grunt-contrib-imagemin/issues/273
https://stackoverflow.com/questions/26584879
复制相似问题