Code Monkey home page Code Monkey logo

react-chrome-plugin's Introduction

2023新春版:React+Antd开发Chrome插件教程

基于Create-React-APP的Chrome Extension Manifest V3工程脚手架。

本项目架构实现了以下功能:

  • 基于Create-React-App 5.0.1搭建
  • 基于Chrome Extension Manifest V3规范
  • 集成Sass/Scss/Less/Stylus
  • 集成Ant Design 5.x
  • 集成mock.js、mockjs-fetch模拟请求
  • 集成http-proxy-middleware 反向代理
  • 集成react-router-dom v6.8
  • 将popup、content、background目录互相独立,便于团队协作开发维护
  • 按照Chrome Extension最终生成目录要求配置webpack
  • 封装fetch,满足popup、content script、background script跨域请求
  • 设置.env.development环境变量,便于在开发环境下禁止委托background script发起请求
  • 实现了完整的Chrome Extension MV3项目Demo。

使用方法:开发环境

※注:为方便演示接口请求,本Demo使用了mock.js,也配置了反向代理。 mock.js便于直接调试,使用前请修改src/api/index.js,将import '@/mock'前的注释去掉,保证mock.js的正确引入。 如使用反向代理,需要自行在本地搭建API服务,接口返回数据可参考src/mock.js中的数据。

执行:npm start 或 yarn start

使用方法:build项目

※注:执行build前一定检查是否取消mock.js,即确认src/api/index.js中,将import '@/mock'注释掉。这是因为mock.js使用window变量,而运行background script的Service Worker不支持window,将导致插件运行失败。

执行:npm build 或 yarn build

关于真实API请求(非mock.js模拟请求)

本Demo不包含后端API服务。如在开发环境使用反向代理请求API,或者在build后的正式插件中请求API,请自行搭建后端API服务,返回的数据可参照src/mock.js或教程中相应章节的截图。

配套教程

📚📚本项目有详细的讲解教程,原文请关注我的微信公众号【卧梅又闻花】📚📚

查阅本项目完整教程:《2023新春版:React+Antd开发Chrome插件教程》

教程目录

强烈建议按照以下章节一步一步边学边做,大约40分钟的时间,就可以快速掌握整个项目的原理和细节。这样在以后遇到新问题的时候,可以知道从哪个环节入手。

1 初始化项目
1.1 使用create-react-app新建项目
1.2 精简项目
2 Chrome Extension基础
2.1 Manifest V3概述
2.2 Manifest V3 主要新特性
2.3 Chrome Extension的组成
2.4 规划build生成的目录结构
2.5 配置manifest.json
3 项目目录结构设计
4 Webpack配置
4.1 配置国内镜像源
4.2 暴露Webpack
4.3 支持Sass/Scss
4.4 支持Less
4.5 支持Stylus
4.6 设置路径别名
4.7 禁止build项目生成map文件
4.8 设置多入口
4.9 固定build生成的文件名
4.10 设置popup只引入自己的index.js
4.11 设置全局公用样式
4.12 初始化项目架构文件
5 引入Ant Design 5.x
5.1 安装Ant Design
5.2 设置Antd为中文语言
6 Popup开发
6.1 引入popup页面
6.2 构建popup的Login页面
6.3 构建popup的Home页面
6.4 构建popup的Account页面
6.5 配置popup页面路由
6.6 构建Nav导航组件
6.7 构建Entry二级路由框架页面
6.8 调整popup入口页面,打通全部路由
6.9 完善Login页面的登录跳转
6.10 设置popup页面尺寸
7 build项目并载入插件
8 background script开发
8.1 设置允许运行popup的页面规则
8.2 为什么插件图标在禁用页面不变成灰色
9 content script开发
9.1 向目标页面注入悬浮球
9.2 在content script中使用Antd
9.3 加载插件自身的静态图片资源(选读)
10 在开发环境中调试content script
11 API请求
11.1 background pages不支持XMLHttpRequest(axios)
11.2 使用mock.js和mockjs-fetch模拟请求
11.3 封装API及fetch业务逻辑
11.4 委托background script完成API请求
11.5 实现popup的Login页面API请求
11.6 设置开发环境的反向代理请求
11.7 实现content script的API请求
11.8 关键知识点小结
12 其他说明
12.1 permission权限配置
12.2 以<script>方式向目标页面插入js
12.3 Service Worker调试
12.4 popup页面调试
12.5 精简最终build文件
13 项目Git源码
结束语

react-chrome-plugin's People

Contributors

yuezi32 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.