compress-images icon indicating copy to clipboard operation
compress-images copied to clipboard

Compatibility with pngquant-bin v7

Open VadimDez opened this issue 2 years ago • 5 comments

Found an issue, since version 7 of pngquant-bin they're using native ESM, using pngquant-bin v7+ will fail with:

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: .../node_modules/pngquant-bin/index.js
require() of ES modules is not supported.
require() of .../node_modules/pngquant-bin/index.js from .../node_modules/compress-images/index.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename .../node_modules/pngquant-bin/index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from .../node_modules/pngquant-bin/package.json.

VadimDez avatar Nov 08 '21 22:11 VadimDez

Same for gifsicle!

mathieutu avatar Nov 23 '21 10:11 mathieutu

@mathieutu

Same for gifsicle!

Temporary solution:

npm install [email protected] --save npm install [email protected] --save

Yuriy-Svetlov avatar Nov 23 '21 13:11 Yuriy-Svetlov

Yep, this is what I've done. 😉

mathieutu avatar Nov 23 '21 13:11 mathieutu

@mathieutu

Temporary solution-2:

You can also download:

https://pngquant.org/

Binary for macOS (v2.17.0) Binary for Windows Package for Debian Various Linux packages

and replace in node_modules\pngquant-bin\vendor\pngquant.exe for Windows as the example.

Yuriy-Svetlov avatar Nov 23 '21 14:11 Yuriy-Svetlov

I can't upgrade these packages (gifsicle, pngquant-bin) to these versions, because they use ESModules and the compress-images package is still using CommonJS

Captura de pantalla 2024-01-07 a las 23 38 14 Captura de pantalla 2024-01-07 a las 23 41 03 Captura de pantalla 2024-01-07 a las 23 42 31 Captura de pantalla 2024-01-07 a las 23 45 45

beatrizsmerino avatar Jan 07 '24 22:01 beatrizsmerino