chrome插件模板;使用 React 18 和 Webpack 5 的 Chrome 扩展样板
一、软件介绍(文末提供下载)
这是一个基本的 Chrome 扩展样板,可帮助您编写模块化和现代的 Javascript 代码,轻松加载 CSS,并在代码更改时自动重新加载浏览器。
github地址:https://github.com/lxieyang/chrome-extension-boilerplate-react
本文信息图片来源于上面GitHub地址
二、软件特征
- Chrome Extension Manifest V3
- React 18
- Webpack 5
- Webpack Dev Server 4
- React Refresh
- react-refresh-webpack-plugin
- eslint-config-react-app
- Prettier
- TypeScript
三、安装和运行
- Check if your Node.js version is >= 18.
检查您的 Node.js 版本是否为 >= 18。 - Clone this repository. 克隆此存储库。
- Change the package's
name,description, andrepositoryfields inpackage.json.
在 中更改包的name、description和repository字段package.json。 - Change the name of your extension on
src/manifest.json.
在 上src/manifest.json更改扩展的名称。 - Run
npm installto install the dependencies.
Runnpm install以安装依赖项。 - Run
npm start跑npm start - Load your extension on Chrome following:
在 Chrome 上加载您的扩展:- Access
chrome://extensions/访问chrome://extensions/ - Check
Developer mode检查Developer mode - Click on
Load unpacked extensionLoad unpacked extension点击 - Select the
buildfolder.
选择build文件夹。
- Access
- Happy hacking. 祝您愉快。
四、结构
1、 所有扩展的代码都必须放在该 src 文件夹中,样板已经准备好具有弹出窗口、选项页面、背景页面和新标签页(替换浏览器的新标签页)。但请随意自定义这些。
2、TypeScript (类型脚本)
此样板现在支持 TypeScript!Page Options 是使用 TypeScript 实现的。有关示例用法,请参阅 src/pages/Options/ 示例。
3、 Webpack 自动重新加载和 HRM
为了使您的工作流程更加高效,此样板使用 webpack 服务器进行开发(从 开始), npm start 具有自动重新加载功能,每次在编辑器中保存某些文件时,该功能都会自动重新加载浏览器。
如果需要,您可以在其他端口上运行 dev 模式。只需像这样指定 env var port :
$ PORT=6002 npm run start
4、Content Scripts 内容脚本
尽管此样板使用 webpack 开发服务器,但它也准备在每次代码更改时将所有 bundles 文件写入磁盘,因此您可以在扩展清单上指向要用作内容脚本的 bundles,但您需要从热重载中排除这些入口点(为什么?为此,您需要在使用 chromeExtensionBoilerplate -> notHotReload 配置上 webpack.config.js 公开哪些入口点是内容脚本。请看下面的示例。
假设你想使用 myContentScript 入口点作为内容脚本,那么 webpack.config.js 你将配置入口点并将其从热重载中排除,如下所示:
{
…
entry: {
myContentScript: "./src/js/myContentScript.js"
},
chromeExtensionBoilerplate: {
notHotReload: ["myContentScript"]
}
…
}
and on your src/manifest.json:
{
"content_scripts": [
{
"matches": ["https://www.google.com/*"],
"js": ["myContentScript.bundle.js"]
}
]
}
5、Packing 包装
开发扩展后,运行命令
$ NODE_ENV=production npm run build
现在,folder 的内容 build 将是准备提交到 Chrome Web Store 的扩展。只需查看官方指南即可了解有关发布的更多信息。
6、秘密
如果您正在开发一个与某些 API 通信的扩展,您可能正在使用不同的密钥进行测试和生产。是一种很好的做法,您不要提交密钥并公开给有权访问存储库的任何人。对于此任务,此样板通过名为 的模块将文件 ./secrets.<THE-NODE_ENV>.js 导入到您的模块上 secrets ,因此您可以执行以下作:
./secrets.development.js
export default { key: '123' };
./src/popup.js
import secrets from 'secrets';
ApiCall({ key: secrets.key }); 五、安装包下载
夸克网盘分享
相关文章:
chrome插件模板;使用 React 18 和 Webpack 5 的 Chrome 扩展样板
一、软件介绍(文末提供下载) 这是一个基本的 Chrome 扩展样板,可帮助您编写模块化和现代的 Javascript 代码,轻松加载 CSS,并在代码更改时自动重新加载浏览器。 github地址:https://github.com/lxieyang/c…...
大语言模型极速部署:Ollama 与 One-API 完美搭建教程
大语言模型极速部署:Ollama 与 One-API 完美搭建教程 本文将介绍如何通过命令行工具部署 Ollama 和 One-API,帮助你快速搭建私有化大模型。 一、安装 Ollama Ollama 是一个容器化的应用,方便部署和管理 AI 模型。以下是安装 Ollama 的步骤。…...
【C++】STL——list底层实现
目录 💕1.list的三个类介绍 💕2.list——节点类 (ListNode) 💕3.list——链表类 (List) 💕4.list——迭代器类(重点思考)(ListIterator) 💕5…...
Java 进阶day14XML Dom4j 工厂模式 Base64
目录 知识点1、XML 概念XML约束 知识点2、XML解析 Dom4j(Dom for java)XPath 知识点3、工厂模式知识点4、Base64 知识点1、XML 概念 XML的全称为(eXtensible Markup Language),是一种可扩展的标记语言。 XML的作用&…...
100.6 AI量化面试题:如何评估AI量化模型的过拟合风险?
目录 0. 承前1. 解题思路1.1 性能验证维度1.2 统计检验维度1.3 实践验证维度 2. 样本内外性能对比2.1 基础性能指标计算2.2 策略收益对比 3. 参数敏感性分析3.1 参数网格搜索3.2 稳定性评估 4. 白噪声测试4.1 随机数据测试 5. Deflated Sharpe Ratio5.1 DSR计算 6. 交易成本敏感…...
C++模板:泛型编程的魔法钥匙
前言 本篇博客将详细介绍C的模板 💖 个人主页:熬夜写代码的小蔡 🖥 文章专栏:C 若有问题 评论区见 🎉欢迎大家点赞👍收藏⭐文章 一:引言:为什么需要模板? 1.复杂代码…...
unordered_map/set的哈希封装
【C笔记】unordered_map/set的哈希封装 🔥个人主页:大白的编程日记 🔥专栏:C笔记 文章目录 【C笔记】unordered_map/set的哈希封装前言一. 源码及框架分析二.迭代器三.operator[]四.使用哈希表封装unordered_map/set后言 前言 哈…...
机器学习专业毕设选题推荐合集 人工智能
目录 前言 毕设选题 开题指导建议 更多精选选题 选题帮助 最后 前言 大家好,这里是海浪学长毕设专题! 大四是整个大学期间最忙碌的时光,一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整理…...
软件工程导论三级项目报告--《软件工程》课程网站
《软件工程》课程网站 摘要 本文详细介绍了《软件工程》课程网站的设计与实现方案,包括可行性分析、需求分析、总体设计、详细设计、测试用例。首先,通过可行性分析从各方面确认了该工程的可实现性,接着需求分析明确了系统的目标用户群和功能…...
物联网领域的MQTT协议,优势和应用场景
MQTT(Message Queuing Telemetry Transport)作为轻量级发布/订阅协议,凭借其低带宽消耗、低功耗与高扩展性,已成为物联网通信的事实标准。其核心优势包括:基于TCP/IP的异步通信机制、支持QoS(服务质量&…...
缓存类为啥使用 unordered_map 而不是 map
性能考虑: std::unordered_map 是基于哈希表实现的,而 std::map 是基于红黑树实现的。对于查找操作,std::unordered_map 的平均查找时间复杂度是 O ( 1 ) O(1) O(1),而 std::map 的查找时间复杂度是 O ( l o g n ) O(log n) O(l…...
产品经理的人工智能课 02 - 自然语言处理
产品经理的人工智能课 02 - 自然语言处理 1 自然语言处理是什么2 一个 NLP 算法的例子——n-gram 模型3 预处理与重要概念3.1 分词 Token3.2 词向量化表示与 Word2Vec 4 与大语言模型的交互过程参考链接 大语言模型(Large Language Models, LLMs)是自然语…...
2024年MySQL 下载、安装及启动停止教程(非常详细),涉及命令行net start mysql80提示发生系统错误5的解决方案
一、安装包下载 官方网址: https://www.mysql.com/ MySQL 官方提供了两种不同的版本: 1.社区版本( MySQL Community Server ) :免费, 但MySQL 不提供任何技术支持 2.商业版本( MySQL Enterp…...
19.[前端开发]Day19-王者荣项目耀实战(二)
01_(掌握)王者荣耀-main-banner展示实现 完整代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpor…...
lmk内存压力测试工具mem-pressure源码剖析
背景: android系统开发过程中,经常会遇到一些low memory kill的问题,在分析这些系统低内存导致被杀问题时候,经常因为不好复现而成为一个比较烦恼的阻碍。因为这种低内存问题本身就不属于一种功能操作类型的问题,属于…...
企业四要素如何用Java进行调用
一、什么是企业四要素? 企业四要素是在企业三要素(企业名称、统一社会信用代码、法定代表人姓名)的基础上,增加了一个关键要素,通常是企业注册号或企业银行账户信息。这种接口主要用于更全面的企业信息验证,…...
修剪二叉搜索树(力扣669)
这道题还是比较复杂,在递归上与之前写过的二叉树的题目都有所不同。如果当前递归到的子树的父节点不在范围中,我们根据节点数值的大小选择进行左递归还是右递归。为什么找到了不满足要求的节点之后,还要进行递归呢?因为该不满足要…...
一款由 .NET 官方团队开源的电子商务系统 - eShop
项目介绍 eShop是一款由.NET官方开源的,基于.NET Aspire构建的用于参考学习的服务架构电子商务系统,旨在展示如何利用.NET框架及其相关技术栈构建一个现代化的电子商务网站。该项目采用服务架构,将应用程序分解为多个独立的服务,…...
论最新技术编程类有什么,值得关注的点有什么呢?
在2025年的编程领域,新技术层出不穷。编程语言方面,Zig作为新一代系统级编程语言,凭借无隐藏控制流、出色的优化性能以及良好的C语言兼容性,被视作C语言强有力的替代者;Rust的应用范围不断拓展,在系统开发和Web后端开发中表现亮眼,其“零成本抽象”特性在保障内存安全的…...
Java入门进阶
文章目录 1、常用API 1.1、Math1.2、System1.3、Object1.4、Arrays1.5、基本类型包装类 1.5.1、基本类型包装类概述1.5.2、Integer1.5.3、int和String相互转换1.5.4、自动装箱和拆箱 1.6、日期类 1.6.1、Date类1.6.2、SimpleDateFormat类 1.6.2.1、格式化(从Date到…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
