码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 热更新:Chrome 插件开发提效


    热更新:Chrome 插件开发提效

    原文

    Chrome Manifest V3 + Webpack5 + React18 热更新提升开发效率。

    解决的问题

    开发 Chrome 插件的同学想必都会遇到一个问题:
    每次更新代码需要在 chrome://extensions 扩展程序中

    1. 找到对应的插件点击刷新按钮
    2. 重新点击唤起插件查看效果

    特别的繁琐,严重影响开发效率。

    在这里插入图片描述

    本文借助 create-react-app reject 后的工程,改造实现:

    1. 支持现代 Web 开发一样的体验,React、TS、热更新(react-refresh)等
    2. 支持修改 popup 时,实时局部热更新
    3. 支持修改 content、background 时,无需手动刷新
    4. 支持静态资源 public 目录文件变动自动更新

    实现过程

    npx create-react-app crx-app --template typescript
    
    • 1

    进入工程目录

    npm run eject
    
    • 1

    打包多文件

    可能需要输出以下打包文件:

    1. main:主入口,create-react-app 项目主文件,可以用来本地网页开发时预览 popup、tab、panel、devtools 等
    2. popup、tab、panel、devtools 等输出 html,供 Chrome 插件展示页面
    3. content、background 输出 js,用来 Chrome 插件通信

    一、 新增 config/pageConf.js,开发只需按需配置需要打包的输出的文件,内部自动会处理。

    module.exports = {
       
      main: {
        // 必须需要 main 入口
        entry: 'src/pages/index',
        template: 'public/index.html',
        filename: 'index', // 输出为 index.html,默认主入口
      },
      background: {
       
        entry: 'src/pages/background/index',
      },
      content: {
       
        entry: 'src/pages/content/index',
      },
      devtools: {
       
        entry: 'src/pages/devtools/index',
        template: 'public/index.html',
      },
      newtab: {
       
        entry: 'src/pages/newtab/index',
        template: 'src/pages/newtab/index.html',
      },
      options: {
       
        entry: 'src/pages/options/index',
        template: 'src/pages/options/index.html',
      },
      panel: {
       
        entry: 'src/pages/panel/index',
        template: 'public/index.html',
      },
      popup: {
       
        entry: 'src/pages/popup/index',
        template: 'public/index.html',
      },
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    对应说明

    type PageConfType = {
        
      [key: string]
    • 1
    • 2
  • 相关阅读:
    WEB网页设计期末作业个人主页——基于HTML+CSS制作个人简介网站
    周末折腾了两天,踩了无数个坑,终于把win7装成了centos7
    C++笔记 05
    微信小程序——后台交互
    java计算机毕业设计旅游管理系统源码+mysql数据库+系统+lw文档+部署
    前端通用后台登录解决方案(一站式解决封装axios模块、接口请求模块、登录请求动作、本地缓存处理、登录鉴权解决)
    华为手机隐藏的这个功能,简直是办公旅人爱用好物
    几何光学与 Mathematica
    在构建 Web3 前,需先知道什么是区块链,毕竟 Web3 是基于区块链
    05-nunjucks模板入门
  • 原文地址:https://blog.csdn.net/guduyibeizi/article/details/127684258
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号