chrome-extension-smms 是基于 smms 实现的一个
chrome
图床扩展。
其实很早以前就想学习Chrome
扩展开发 了,只是一直没有抽出时间,一直瞎忙。今天恰好闲下来了并且恰好看到一些跟Chrome
扩展开发相关的文章,因而就像动手写一个试试,因而就有了这篇文章。javascript
首先,这里所说的 Chrome扩展
,并不是 Chrome插件
,二者是有区别的,想要弄明白这两个概念的能够看看知乎的这个问题 Chrome 的插件(Plugin)与扩展(Extension)有什么区别?css
Chrome
提供的 Chrome API
来扩展浏览器功能的一种组件,工做在浏览器层面,使用 HTML
+ Javascript
语言开发。好比著名的 Adblock plus
。既然知道了 Chrome 扩展
是用 HTML
+ javascript
开发的了,那么咱们首先要作的就是要搭建一个前端项目出来。html
本文讲述的是一个
Chrome扩展
的大体过程,不会出现具体的功能如何实现。前端
因为我我的喜欢用 react.js
来构建前端应用, 这里我使用 dva-cli
来初始化项目,这个没有特殊要求,你能够随意使用本身喜欢的前端项目构建工具。java
npm i -g dva-cli dva new smms-extension cd smms-extension
在项目中编写业务的实现,例如 smms图床扩展 的逻辑是上传图片到图床,而后展现列表,提供删除图片和预览图片的方法,而后实现他。react
npm run build
打包好应用后,添加 manifest.json
文件到打包好的资源的文件夹,我这里是 dist
文件夹。而后修改 manifest.json
文件:git
{ "manifest_version": 2, "name": "SMMS图床", "description": "一个简单实用的图床扩展", "version": "1.", "icons": { "16": "qbhy.png", "48": "qbhy.png", "128": "qbhy.png" }, "permissions": [ "tabs" ], "background": { "persistent": false, "scripts": ["background.js"] }, "browser_action": { "default_icon": "qbhy.png", "default_title": "SMMS图床", "default_popup": "index.html" } }
以上内容大概描述了该扩展的图标、默认打开方式、入口文件 、title
等属性,完整的 manifest.json
属性请移步 360浏览器扩展开发文档(其实就是翻译事后的 Chrome
扩展开发文档)。github
注意
index.html
文件里面的资源引用问题,不能使用/index.js
这种方式引用脚本,要用相对路径引用,例如直接写index.js
,css同理。web
而后用 Chrome
打开 chrome://extensions
页面,勾选开发者模式。
而后点击 加载已解压的扩展程序
选择包含 manifest.json
的文件夹,我这里是dist。
而后右上角就多了一个图标,不过如今还不是咱们设置的那个图标,由于如今还没打包成 .crx
后缀的扩展。
而后点开就能够预览了chrome
通过一番调试,肯定扩展没有问题后,就能够打包了。
打包好后会在跟目录同级的地方生成一个跟目录同名的以 .crx
为后缀的扩展文件,这个文件就能够直接发给别人使用了,至于密钥文件我还不知道有什么用,反正我是删了。
最后初始化一个 git
仓库,上传上去,这事就算这么完了。什么?你要发布到 chrome store
?首先告诉你这要付 5$ 的开发者年费,对是 5 刀,不是 5 软妹币,其实也不算贵,毕竟装一个很愉快的逼比这点钱重要多了,可是我仍是在发布的路上碰到坑了, 例如:
而后我就放弃了发布到 chrome store 的想法。
感兴趣的朋友能够自行尝试一下,传送门
本文主要想记录一个 Chrome 扩展开发的大体过程,同时但愿让初学者可以看清 Chrome 扩展的神秘面纱后面的真相,因此许多细节并未深究,如读者有兴趣能够在下方评论与我一块儿讨论。