chrome插件打包之后,显示此扩展程序可能已损坏
每日鸡汤,每个你想要学习的瞬间都是未来的你向自己求救
问题是这样的,我们有一个chrome插件的项目,但是我也没有参与开发,可以说此前对chrome插件一窍不通。但是今天呢,有个bug,要我改,我就拉一下代码看了一下,项目很简单,使用vue写的。改完bug之后要打包发布,就出现问题了。我打包完的crx文件总是显示【此扩展程序可能已经损坏】然后就用不了了!气人!
怎么回事呢,先来看看我怎么打包的
运行 npm run build 生成dist文件夹打开 chrome://extensions 目录点击【打包扩展程序】选择刚才的【dist】文件和项目中的【dist.pem】密钥文件然后生成了一个 dist.crx 文件然后拖进 chrome://extensions 安装然后过了一会显示【此扩展程序可能已经损坏】看起来流程很正确对吧?
问题出在哪里呢,对比了一下线上的已发布的插件的id,和我打包出来的插件id不同
在打包过程中使用的dist.pem文件,就是为了保证每次打包id相同。但是我打包出来依旧和线上不同,说明什么?说明我们已经发布的版本并没有用项目中的dist.pem打包。
问了一下同事,得到了正确答案:
运行 npm run build 生成dist文件夹压缩 dist 文件,生成zip然后把zip文件上传到谷歌开发平台然后在从谷歌开发开发平台下载crx文件最后安装crx 才没有问题总结一下,我们自己随意打包的crx 文件直接安装会报错,所以不要自己打包了,要用谷歌开发者平台打包,但是我没有那个平台的权限,我现在就不截图展示了,可以参考一下这篇文章。
所以不报错的前提,是我们应该在谷歌开发者平台申请一个账号,但是有的人就是自己写着玩的不想上线,那就可以直接安装dist目录就行,就是传说中的【加载已解压的扩展程序】这样安装的插件有一个下图所示的图标
但是无所谓,能用就行!
所以如果你是一个开发者,在打包自己的插件之后报错,就需要按照上述方法。
如果你是一个月用户,安装别人的插件报错,那么你就可以安装解压后的插件,不要直接安装crx文件,参考