内容简介:原文链接:最近写了一个可以利用 vue 或者 react 快速开发 chrome 插件的 boilerplate,只需要使用我之前写的首先我们安装 bigroom-cli:
原文链接: github.com/lzwaiwai/bl…
最近写了一个可以利用 vue 或者 react 快速开发 chrome 插件的 boilerplate,只需要使用我之前写的 bigroom-cli 工具,就可快速简单地进行启动、打包、编译等, 同时也支持保存代码后,插件自动更新,页面自动刷新 。
boilerplate 生成:
首先我们安装 bigroom-cli:
npm install -g bigroom-cli 复制代码
然后生成 chrome 插件的 boilerplate,这里可以选择使用 react 版本,还是 vue 版本:
bigroom generate/g chrome-extension 复制代码
-
bigroom-react-chrome-extension git: github.com/fe-bigroom/…
-
bigroom-vue-chrome-extension git: github.com/fe-bigroom/…
启动:
npm start 复制代码
打包:
npm build 复制代码
开发目录文件:
- manifest.json 中的 vendor.js 是什么?
"js": ["modules/vendor/vendor.js", "modules/content/content.js"], "scripts": ["modules/vendor/vendor.js", "modules/background/background.js"] 复制代码
因为项目内部使用 webpack 打包编译,所以 这里的 vendor.js 就是 webpack 使用了 optimization-splitChunks 后分离出来的共同依赖文件包。
- manifest.json 中 permissions 的 3000 端口是做什么用的?
"permissions": ["http://*/*", "https://*/*", "http://127.0.0.1:3000/*", "http://localhost:3000/*"] 复制代码
这套开发模式支持修改代码保存后,正在开发的 chrome 插件会进行自动重启,并刷新当前 tab 的页面,那么这个通信需要服务支撑并需要插件允许接受此服务的信息,那么开发模式下需要允许 http://127.0.0.1:3000/* 或者 http://localhost:3000/*, 否则会出现跨域错误。
- manifest.json 中的 content_security_policy 设置
"content_security_policy": "default-src 'self'; script-src 'self' http://127.0.0.1:3000 http://localhost:3000 'unsafe-eval'; connect-src http://127.0.0.1:7001 http://localhost:7001; style-src * 'unsafe-inline' 'self' blob:; img-src 'self' data:;" 复制代码
因为使用了 webpack 编译,所以很多脚本的代码的引入会使用外链的形式,那么就需要 chrome 插件放行这些不安全的外链,所以 script-src 需要如上设置;同样,以为页面中需要请求服务端的接口, connect-src 也需要放行这些不安全的域名;
- 通信
目录中的很多文件已经有了一些代码,这里主要提供了 background、content、popup 之间的通信方法。 建议:popup、background、content(inject)之间的通信建议以 background 作为中间传递层,防止维护混乱问题。
以上所述就是小编给大家介绍的《快速利用 vue 或者 react 开发 chrome 插件》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 利用最近的闲暇,重新上线了 MPAA 电影分级插件
- 详细讲解 | 利用python开发Burp Suite插件(一)
- 详细讲解 | 利用python开发Burp Suite插件(二)
- WordPress插件IEAC漏洞分析及组合利用尝试
- 流行 jQuery 插件 0day 漏洞被利用至少三年
- 利用burp插件Hackvertor绕过waf并破解XOR加密
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。