chrome extension,文件扩展名为crx,俗称chrome扩展,chrome插件。crx文件本质就是ZIP文件,只是谷歌在ZIP文件头,插入了自定义的私有字段,如,插件描述,插件ID,**等。用户可以手动修改crx文件的扩展名,修改为zip,然后使用普通的解压工具,就能解压。开发者提交自己的插件时,提交的是文件就是压缩包zip文件。而谷歌后台,则根据压缩包,自动生成crx文件。注意:chrome依靠插件ID,而不是插件名字,判断是否为同一个插件。开发者提交插件更新时,即使修改产品名称,也不会影响用户的插件升级。
如何打包生成自己的插件呢?
打开插件管理页面(chrome://extensions/)。
点击右上角的“开发者模式”按钮后,再点击“打包扩展程序”,就会弹出“打包扩展程序”对话框。
根据提示,选择扩展程序根目录,就会生成crx文件了。这里有一个问题,如果是第一次生成CRX文件,Chrome会在其根目录下生成一个pem**文件。
举个例子:
你有一个扩展程序,文件名为MyFirstExtension,那么扩展程序根目录为:E:\Project\MyFirstExtension
那么生成的文件路径就是:E:\Project\MyFirstExtension.crx,E:\Project\MyFirstExtension.pem。
那么问题来了,pem**文件有何用处呢?
很简单,用于生成插件ID,区分插件的。假设,你当前插件叫做MyFirstExtension,版本号为1.0,而下一次升级时,你想把产品名称改为MySecondExtension,版本号为2.0。但,如何保证Chrome认为它们是一款插件呢?这个时候,就需要pem**文件了,再次生成crx文件时,选择pem文件。
它就能保证新生成的crx文件,与原有的crx文件的id是一样的,这样,部署插件时,就能保证Chrome浏览器,认为它们是同一个插件了。
附:
1.对于开发者而言,开发测试时,使用的是未压缩的文件夹,而其插件ID是根据插件所在的绝对路径计算而来的。也就是说,解压后的插件,复制到其它目录,然后在开发者模式下,通过“加载已解压的扩展程序”重新加载插件文件夹后,其插件ID也会跟着变化。
2.开发者提交给Chrome官方的是ZIP文件,不能是CRX文件。
参考https://blog.****.net/wanwuguicang/article/details/79742017