juzisang / picgo-plugin-compress

Image compression plugin for PicGo
MIT License
126 stars 31 forks source link

TinyPNG无法压缩 #11

Closed xuyisheng closed 3 years ago

xuyisheng commented 4 years ago

启用transformer后,选择tinypng压缩,设置了key,但是压缩没有生效,云服务器上依然是未压缩的图片,日志如下。

2020-09-19 17:17:15 [PicGo INFO] Before transform
2020-09-19 17:17:15 [PicGo INFO] Transforming...
2020-09-19 17:17:15 [PicGo ERROR] TypeError: Cannot read property 'key' of undefined
------Error Stack Begin------
TypeError: Cannot read property 'key' of undefined
    at Object.handle (/Users/xuyisheng/Library/Application Support/picgo/node_modules/picgo-plugin-compress/dist/index.js:34:22)
    at Lifecycle.doTransform (/Applications/PicGo.app/Contents/Resources/app.asar/node_modules/picgo/dist/src/core/Lifecycle.js:51:27)
    at Lifecycle.start (/Applications/PicGo.app/Contents/Resources/app.asar/node_modules/picgo/dist/src/core/Lifecycle.js:19:24)
    at processTicksAndRejections (internal/process/task_queues.js:89:5)
    at async PicGo.upload (/Applications/PicGo.app/Contents/Resources/app.asar/node_modules/picgo/dist/src/core/PicGo.js:156:13)
-------Error Stack End-------
xuyisheng commented 4 years ago

重新npm install好了,但是upng压缩对jpg图片还是报错。

------Error Stack Begin------
Error: spawn /Users/xuyisheng/Library/Application Support/picgo/node_modules/mozjpeg/vendor/cjpeg ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:84:9)
-------Error Stack End-------
juzisang commented 4 years ago

看着好像还是有依赖没有安装成功,imagemin-mozjpeg 没有安装成功的话,imagemin应该也是压缩不了 jpg图片的。 可以试试 npm install imagemin-mozjpeg --save 你本地能否成功安装这个依赖库 成功的话重新npm install应该就正常了。 失败可能需要参考下为什么 > imagemin-mozjpeg/issues 翻到一个类似的 https://github.com/imagemin/imagemin-mozjpeg/issues/14 不知道对你有没有帮助

xuyisheng commented 4 years ago

我试了下npm install imagemin-mozjpeg --save是可以安装成功的,但是重新执行npm install,就卡在compiling from source不动了,npm 6.12.1

juzisang commented 4 years ago

或许用 cnpm 可以解决

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install
xuyisheng commented 3 years ago

还是不行,要么你把imagemin-mozjpeg这个文件夹打个包我放进来看看?

juzisang commented 3 years ago

不行的,npm 包都是有相互依赖的,而且有几个模块还需要在你本地安装的时候才编译。 看起来是 imagemin-mozjpeg 依赖的 mozjpeg-bin 在你本地编译失败了。 imagemin-mozjpeg 能安装成功的话,npm install mozjpeg-bin --save 可以吗?

xuyisheng commented 3 years ago

我感觉是node version的兼容性问题,我是v13.1.0,你的version是多少?

juzisang commented 3 years ago

v12,v13好像不是稳定版吧

xuyisheng commented 3 years ago

试了v12也不行。。。

xuyisheng commented 3 years ago

记录一下,需要nodev12,且通过brew安装autoconf,查了好久日志才找到原因