gruntjs / grunt-contrib-imagemin

Minify PNG, JPG, GIF and SVG images.
https://gruntjs.com
MIT License
1.21k stars 175 forks source link

Warning: Error: spawn EACCES #252

Closed shampine closed 10 years ago

shampine commented 10 years ago

Seeing this error on any of our projects where we install the latest version, if I roll the project back using npm install grunt-contrib-imagemin@0.8.0 I don't have any issues.

Thoughts as to what is causing it? The title is about all that is printed out in verbose mode.

kevva commented 10 years ago

What does it say upon installation? The error is thrown because a binary is missing.

shampine commented 10 years ago

Let me update it again to the latest and see if there are any errors during install. It's been a running theme across all our projects for all our developers lately (showed up maybe in the last 1-2 weeks).

I'll get back to you soon with some more details from the install.

kevva commented 10 years ago

Yep, what I need to know is which package that's failing and what OS you're on.

shampine commented 10 years ago
> pngquant-bin@0.3.5 postinstall /node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin
> node index.js

✔︎ pre-build test passed successfully!

> gifsicle@0.1.7 postinstall /node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-gifsicle/node_modules/gifsicle
> node index.js

✔︎ pre-build test passed successfully!

> optipng-bin@0.3.11 postinstall /node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin
> node index.js

✔︎ pre-build test passed successfully!

> jpegtran-bin@0.2.8 postinstall /node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-jpegtran/node_modules/jpegtran-bin
> node index.js

grunt-contrib-imagemin@0.7.2 node_modules/grunt-contrib-imagemin
├── pretty-bytes@0.1.2
├── async@0.7.0
├── chalk@0.4.0 (ansi-styles@1.0.0, has-color@0.1.7, strip-ansi@0.1.1)
└── imagemin@0.4.9 (stat-mode@0.2.0, ware@0.3.0, rimraf@2.2.8, image-type@0.1.4, tempfile@0.1.3, nopt@3.0.1, fs-extra@0.10.0, imagemin-svgo@0.1.1, imagemin-pngquant@0.1.3, imagemin-gifsicle@0.1.1, imagemin-optipng@0.1.0, imagemin-jpegtran@0.1.0)

I attempted to install the latest version in several of our projects, all the output appeared the same as above, no errors noted and compiling did work correctly across all of them. All of us are on OS X 10.9.4.

If it helps I see the issue appear when going back to a project that formerly used to compile. The error that was thrown this morning was on a project that hasn't had any Grunt config changes in about a month.

revathskumar commented 10 years ago

Same issue on Ubuntu 14.04 Node v0.10.31

imagemin installed successfully

› npm install -g imagemin
\
> pngquant-bin@1.0.1 postinstall /home/whatznear/.nvm/v0.10.31/lib/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin
> node lib/install.js

  downloading : https://raw.github.com/imagemin/pngquant-bin/v1.0.1/vendor/linux/x64/pngquant
     progress : [====================] 100% 0.0s

✔︎ pre-build test passed successfully!

> gifsicle@1.0.3 postinstall /home/whatznear/.nvm/v0.10.31/lib/node_modules/imagemin/node_modules/imagemin-gifsicle/node_modules/gifsicle
> node lib/install.js

  downloading : https://raw.github.com/imagemin/gifsicle-bin/v1.0.3/vendor/linux/x64/gifsicle
     progress : [====================] 100% 0.0s

✔︎ pre-build test passed successfully!

> optipng-bin@1.0.1 postinstall /home/whatznear/.nvm/v0.10.31/lib/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin
> node lib/install.js

  downloading : https://raw.github.com/imagemin/optipng-bin/v1.0.1/vendor/linux/x64/optipng
     progress : [====================] 100% 0.0s

✔︎ pre-build test passed successfully!

> jpegtran-bin@1.0.2 postinstall /home/whatznear/.nvm/v0.10.31/lib/node_modules/imagemin/node_modules/imagemin-jpegtran/node_modules/jpegtran-bin
> node lib/install.js

  downloading : https://raw.github.com/imagemin/jpegtran-bin/v1.0.2/vendor/linux/x64/jpegtran
     progress : [====================] 100% 0.0s

✔︎ pre-build test passed successfully!
/home/whatznear/.nvm/v0.10.31/bin/imagemin -> /home/whatznear/.nvm/v0.10.31/lib/node_modules/imagemin/cli.js
imagemin@2.0.0 /home/whatznear/.nvm/v0.10.31/lib/node_modules/imagemin
├── get-stdin@3.0.0
├── nopt@3.0.1 (abbrev@1.0.5)
├── stream-combiner@0.2.1 (duplexer@0.1.1, through@2.3.6)
├── vinyl@0.4.3 (clone-stats@0.0.1, lodash@2.4.1)
├── through2@0.6.1 (xtend@4.0.0, readable-stream@1.0.31)
├── concat-stream@1.4.6 (inherits@2.0.1, typedarray@0.0.6, readable-stream@1.1.13)
├── vinyl-fs@0.3.7 (graceful-fs@3.0.2, lodash@2.4.1, strip-bom@1.0.0, mkdirp@0.5.0, glob-watcher@0.0.6, glob-stream@3.1.15)
├── imagemin-svgo@2.0.0 (is-svg@1.0.0, svgo@0.4.5)
├── imagemin-pngquant@2.0.0 (is-png@1.0.0, pngquant-bin@1.0.1)
├── imagemin-gifsicle@2.0.0 (is-gif@1.0.0, gifsicle@1.0.3)
├── imagemin-optipng@2.0.1 (is-png@1.0.0, exec-buffer@1.0.1, optipng-bin@1.0.1)
└── imagemin-jpegtran@2.0.0 (is-jpg@1.0.0, jpegtran-bin@1.0.2)

But running grunt -v imagemin fails

Registering "grunt-contrib-imagemin" local Npm module tasks.
Reading /home/whatznear/code/sansid/node_modules/grunt-contrib-imagemin/package.json...OK
Parsing /home/whatznear/code/sansid/node_modules/grunt-contrib-imagemin/package.json...OK
Loading "imagemin.js" tasks...OK
+ imagemin

Running tasks: imagemin

Running "imagemin" task

Running "imagemin:dist" (imagemin) task
Verifying property imagemin.dist exists in config...OK
Files: app/images/greenwalk-1.jpg -> dist/images/greenwalk-1.jpg
Files: app/images/greenwalk.jpg -> dist/images/greenwalk.jpg
Files: app/images/gw-land2.jpg -> dist/images/gw-land2.jpg
Files: app/images/gw-location.jpg -> dist/images/gw-location.jpg
Files: app/images/logo.jpg -> dist/images/logo.jpg
Options: interlaced, optimizationLevel=3, progressive
Warning: spawn EACCES Use --force to continue.

Aborted due to warnings.

imagemin executable availabe in PATH

› which imagemin
/home/whatznear/.nvm/v0.10.31/bin/imagemin
kevva commented 10 years ago

Oh, EACCESS you say. That means you don't have permissions to run the binary.

revathskumar commented 10 years ago

I tried installing imagemin locally and also I use NVM, so I think I have enough permission to run the binary.

On Sun, Sep 21, 2014 at 3:43 PM, Kevin Mårtensson notifications@github.com wrote:

Oh, EACCESS you say. That means you don't have permissions to run the binary.

— Reply to this email directly or view it on GitHub https://github.com/gruntjs/grunt-contrib-imagemin/issues/252#issuecomment-56294660 .

with regards, Revath S Kumar, Rubyist / JavaScripter / PHP

markdownblogger.herokuapp.com

www.phprepo.in revathskumar.com +919995436867

http://twitter.com/revathskumar http://www.linkedin.com/in/revathskumar http://www.gplus.to/rsk http://www.about.me/revathskumar http://www.phprepo.in/ http://www.github.com/revathskumar http://www.youtube.com/revathskumar http://blog.revathskumar.com https://foursquare.com/revathskumar [image: normal-1.png] http://careers.stackoverflow.com/revathskumar

kevva commented 10 years ago

This was fixed in https://github.com/kevva/bin-wrapper/commit/5c45c963ff7e1120ab082a5cc9c451db34adfe36.

On another note, @vladikoff, could you do a patch release? I did an update to the plugin API in imagemin so that plugins are constructors by default.