chrome插件:一个基于webpack + react的chrome 插件项目模板

项目结构

bash 复制代码
$ tree -L 1
.
├── README.md
├── node_modules             # npm依赖
├── package.json             # 详细依赖
├── pnpm-lock.yaml 
├── public                   # 里边包含dist,安装的时候安装这个目录即可
├── src                      # 源码文件
└── webpack.config.js        # webpack打包配置 

主要的文件

manifest.json

bash 复制代码
{
  "name": "GoodDev",
  "manifest_version": 2,
  "version": "0.0.1",
  "description": "前端开发元素快速定位的chrome插件",

  "browser_action": {
    "default_icon": "icon.png",
    "default_title": "GoodDev",
    "default_popup": "dist/popup/popup.html"
  },

  "options_page": "dist/options/options.html",

  "permissions": ["tabs", "activeTab", "storage"],

  "background": {
    "scripts": [
	    "libs/webextension-polyfill.min.js", 
	    "dist/background/background.js"
    ]
  },

  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "run_at": "document_idle",
      "js": [
        "libs/jquery/jquery.min.js",
        "libs/webextension-polyfill.min.js",
        "dist/content/content.js"
      ]
    }
  ],
  "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}

package.json

json 复制代码
{
  "name": "good-dev",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "webpack watch --mode production",
    "build": "webpack --mode production"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "antd": "^5.8.6",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  },
  "devDependencies": {
    "@babel/core": "^7.22.15",
    "@babel/preset-react": "^7.22.15",
    "babel-loader": "^9.1.3",
    "copy-webpack-plugin": "^11.0.0",
    "css-loader": "^6.8.1",
    "style-loader": "^3.3.3",
    "webextension-polyfill": "^0.10.0",
    "webpack": "^5.88.2",
    "webpack-cli": "^5.1.4",
    "webpack-dev-server": "^4.15.1"
  }
}

完整项目结构

bash 复制代码
$ tree -I node_modules/
.
├── README.md
├── package.json
├── pnpm-lock.yaml
├── public
│   ├── icon.png
│   ├── index.html
│   ├── libs
│   │   ├── antd
│   │   │   ├── antd.min.js
│   │   │   └── reset.min.css
│   │   ├── dayjs
│   │   │   └── dayjs.min.js
│   │   ├── jquery
│   │   │   └── jquery.min.js
│   │   ├── react
│   │   │   ├── react-dom.production.min.js
│   │   │   └── react.production.min.js
│   │   └── webextension-polyfill.min.js
│   └── manifest.json
├── src
│   ├── background
│   │   └── background.js
│   ├── consts.js
│   ├── content
│   │   └── content.js
│   ├── options
│   │   ├── options.css
│   │   ├── options.html
│   │   └── options.js
│   ├── popup
│   │   ├── popup.css
│   │   ├── popup.html
│   │   └── popup.js
│   └── utils
│       ├── chrome-util.js
│       ├── copy-util.js
│       ├── dom-util.js
│       └── uuid-util.js
└── webpack.config.js

完整代码:https://github.com/mouday/good-dev/

相关推荐
ssshooter7 小时前
看完就懂 useSyncExternalStore
前端·javascript·react.js
青青家的小灰灰17 小时前
迈向全栈新时代:SSR/SSG 原理、Next.js 架构与 React Server Components (RSC) 实战
前端·javascript·react.js
青青家的小灰灰17 小时前
透视 React 内核:Diff 算法、合成事件与并发特性的深度解析
前端·javascript·react.js
小霖家的混江龙18 小时前
从 0 到 1 实现一个 useState
前端·javascript·react.js
晓得迷路了18 小时前
栗子前端技术周刊第 118 期 - Oxfmt Beta、Angular GitHub stars、React 基金会...
前端·javascript·react.js
AAA阿giao1 天前
从零构建一个现代登录页:深入解析 Tailwind CSS + Vite + Lucide React 的完整技术栈
前端·css·react.js
昨晚我输给了一辆AE861 天前
为什么现在不推荐使用 React.FC 了?
前端·react.js·typescript
不会敲代码11 天前
深入浅出 React 闭包陷阱:从现象到原理
前端·react.js
不会敲代码11 天前
React性能优化:深入理解useMemo和useCallback
前端·javascript·react.js
不会敲代码12 天前
从入门到进阶:手写React自定义Hooks,让你的组件更简洁
前端·react.js