Chrome 插件框架 Plasmo 基本使用示例

📦 1. 安装 Plasmo

在项目目录下运行:

bash 复制代码
npm create plasmo@latest

按照提示选择:

  • Name: your-extension
  • Extension Type: Chrome (or multiple browsers)
  • TypeScript: 推荐 Yes
  • Manifest Version: MV3
  • Use React: Yes(Plasmo 推荐)

完成后会生成一个 Plasmo 扩展工程。


popup.tsx 编辑:

tsx 复制代码
function Popup() {
  return (
    <div style={{ padding: 16 }}>
      <h1>Hello Plasmo!</h1>
      <p>这是你的第一个 Plasmo 扩展。</p>
    </div>
  )
}

export default Popup

运行:

bash 复制代码
npm run dev

Plasmo 会自动生成浏览器扩展,并让你在开发者模式下安装。


🧲 3. 创建一个 Content Script(注入到网页的脚本)

新建文件:content.ts

ts 复制代码
console.log("Plasmo content script running!")

window.addEventListener("click", () => {
  console.log("你点击了页面!")
})

Plasmo 会自动把它加入 manifest,无需你配置 manifest.json。


🔥 4. 与页面进行 DOM 操作

ts 复制代码
// content.ts
const banner = document.createElement("div")
banner.innerText = "Hello from Plasmo!"
banner.style.cssText = `
  position: fixed;
  top: 20px;
  left: 20px;
  padding: 10px 20px;
  background: black;
  color: white;
  border-radius: 8px;
  z-index: 999999;
`
document.body.appendChild(banner)

🔄 5. Background Service Worker(后台脚本)

创建 background.ts

ts 复制代码
chrome.runtime.onInstalled.addListener(() => {
  console.log("扩展已安装!")
})

chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
  if (msg.type === "PING") {
    sendResponse({ text: "PONG" })
  }
})

🔗 6. Content Script 与 Background 交互

content.ts:

ts 复制代码
chrome.runtime.sendMessage({ type: "PING" }, (response) => {
  console.log("后台回复:", response.text)
})

🎉 7. 打包扩展

bash 复制代码
npm run build

打包后输出在 build/ 目录。


📚 完整最小示例结构

复制代码
my-plasmo-extension/
├─ popup.tsx
├─ background.ts
├─ content.ts
├─ package.json
└─ plasmo.config.mjs

这就是一个可运行的 Plasmo 扩展最小示例。

相关推荐
WWBQU13 小时前
前端day06
前端
岁月宁静13 小时前
DeepSeek Harness 团队 招聘 :JD反推:新手如何系统掌握AI Agent开发技术?
前端·人工智能·后端
小则又沐风a13 小时前
深入理解文件系统(二)
java·服务器·前端
sztomarch13 小时前
Disable-Download-Chrome-AI-Mode
前端·chrome
禅思院13 小时前
AI对话前端从入门到崩溃:一个长对话引发的五层优化战争【三】
前端·架构·前端框架
DianSan_ERP1 天前
电商架构演进:如何在高并发场景下实现多平台API的标准化履约?
运维·前端·网络·安全·架构·自动化
碎_浪1 天前
给键盘党的英语记忆工具:我做了一款「打字背单词」桌面应用
前端·程序员·ai编程
阿成学长_Cain1 天前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
yqcoder1 天前
httpOnly 是什么,又有什么用?
开发语言·前端·javascript