阅读 1038

快速利用 vue 或者 react 开发 chrome 插件

原文链接: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
复制代码

启动:

 npm start
复制代码

打包:

npm build
复制代码

开发目录文件:

  1. 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 后分离出来的共同依赖文件包。

  1. 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/*, 否则会出现跨域错误。

  1. 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 也需要放行这些不安全的域名;

  1. 通信

目录中的很多文件已经有了一些代码,这里主要提供了 background、content、popup 之间的通信方法。 建议:popup、background、content(inject)之间的通信建议以 background 作为中间传递层,防止维护混乱问题。

关注下面的标签,发现更多相似文章
评论