fis3 icon indicating copy to clipboard operation
fis3 copied to clipboard

png-compressor插件是不是应该在preprocessor阶段处理,不然标准化处理后,png图片在optimizer阶段生成了新的hash文件名,标准化处理的png图片的uri将失效

Open qinyadong opened this issue 9 years ago • 7 comments

qinyadong avatar Jul 13 '16 08:07 qinyadong

这样就失去了 optimizer 阶段的意义了,实际上压缩以后确实会文件内容变化;但是,md5 是一锤子的事情,第一次产生后,后续如果文件路劲不变是不会变的。除非两个过程中间有删除缓存。如果不是刻意在代码处理过,这种情况理论上不存在。

oxUnd avatar Jul 13 '16 12:07 oxUnd

你使用过__uri吗,虽然我还没读过源码,但从我的实际经验看,__uri是在标准化阶段处理的,然而这个阶段产出生成的文件名hash应该是通过原文件计算hash得到的,但是最终产出了生成的文件名是png压缩后新生成的文件hash,因为只产出最终一个版本的文件,所以通过__uri得到的文件名hash不正确,它只是过渡阶段的产物

qinyadong avatar Jul 13 '16 13:07 qinyadong

__uri 也同样是一个原理,不然几乎就无法用了。你可以把你遇到问题的代码提交上来,我们看看排查排查。

oxUnd avatar Jul 13 '16 13:07 oxUnd

image image 代码是公司的内部代码,不是很方便放出来,但是我可以拿出证据

qinyadong avatar Jul 14 '16 01:07 qinyadong

第一张图里的图片路径是在js文件里通过__uri的方式嵌入的

qinyadong avatar Jul 14 '16 01:07 qinyadong

或者我有时间再写个简单的demo吧

qinyadong avatar Jul 14 '16 01:07 qinyadong

@qinyadong @xiangshouding 你好问下,fis.plugin('png-compressor') 插件跟 Node 版本有关系吗?发现一个问题,我本地环境:

服务器上的 [email protected]+ ,Fis3的版本相同,打包后压缩报错:

[ERROR] optimizer.png-compressor: _handle.PngCompress is not a constructor [/home/jenkins/xxx/imgs/003.png]

gongph avatar Apr 03 '19 07:04 gongph