📌 项目背景
在思源笔记插件开发中,官方或第三方模板通常依赖大量开源库和构建工具。即使是简单的 plugin-sample 构建后也需要 100+MB 的空间占用。对于功能简单、UI 界面不复杂的插件来说,这显得有些"杀鸡用牛刀"。
对于新手开发者而言,这些模板带来了额外的学习负担:
- 需要理解复杂的工具链(Webpack、Vite、TypeScript 等)
- 面对各种配置文件和依赖管理问题
- 频繁的报错消耗开发热情,最终"从未入门到放弃"
有没有更简单的方式? 答案是肯定的!
本项目提供了一个纯原生 JavaScript 插件开发模板,无需复杂依赖和构建工具,让你可以直接上手编写插件代码。
⚠️ 适用场景说明
- ✅ 适合:功能简单、UI 简洁、依赖少的轻量级插件
- ❌ 不适合:需要复杂 UI 组件库(如 React/Vue)或大量第三方依赖的项目
🔗 项目地址
GitHub: https://github.com/wish5115/my-plugin
📁 目录结构
my-plugin/
├── node_modules/ # 插件依赖包(仅用于 IDE 开发提示,别担心,空间占用很小,仅100+KB)
├── i18n/ # 国际化语言文件
│ ├── en_US.json # 英文翻译
│ └── zh_CN.json # 简体中文翻译
├── icon.png # 插件图标(建议尺寸:160x160)
├── preview.png # 插件预览图
├── index.js # 插件主逻辑代码
├── index.css # 插件样式文件
├── plugin.json # 插件配置文件(必需)
├── build.sh # Linux/macOS 打包脚本
├── build.bat # Windows 打包脚本
├── LICENSE # 开源协议
├── README.md # 英文说明文档
└── README_zh_CN.md # 中文说明文档
└── .hotreload # 当有该文件时会自动开启热加载
🚀 快速开始
1. 克隆或下载模板
git clone https://github.com/wish5115/my-plugin.git
cd my-plugin
2. 修改插件信息
编辑 plugin.json 文件,修改插件名称、描述、作者等信息:
{
"name": "my-plugin",
"author": "你的名字",
"url": "https://github.com/你的用户名/my-plugin",
"version": "0.0.1",
"displayName": {
"default": "My Plugin",
"zh_CN": "我的插件"
},
"description": {
"default": "A simple plugin template",
"zh_CN": "一个简单的插件模板"
}
}
3. 开发插件功能
在 index.js 中编写你的插件逻辑,在 index.css 中添加样式。
4. 打包插件
Windows 用户:
build.bat
Linux/macOS 用户:
chmod +x build.sh
./build.sh
打包完成后会生成 package.zip 文件,可以直接上传到 GitHub Release 或分享给其他用户。
🔄 开发调试
方法一:手动刷新(推荐)
修改代码后,在思源笔记开发控制台按 Ctrl/Cmd + R 刷新页面即可看到效果。
方法二:热加载脚本(实验性)
我编写了一个热加载脚本,可以自动检测文件变化并重新加载插件。
使用步骤:
- 下载脚本:hot-reload.js
- 修改脚本中的工作空间路径和 API Token
- 运行:
node hot-reload.js
⚠️ 注意
目前思源笔记的开启/关闭插件 API 存在一个已知 bug,热加载功能需要等待官方 3.5.0+ 修复后才能稳定使用。建议暂时使用"刷新页面"的方式进行调试。
你也可以将热加载功能封装成一个独立插件,欢迎贡献!
✅ 优点
- 极致轻量:无需 node_modules 构建依赖,整个项目仅几百 KB
- 零门槛:只需要懂 HTML/CSS/JavaScript 基础即可开发
- 快速迭代:修改即生效,无需等待编译过程
- 结构清晰:文件结构一目了然,易于理解和维护
- 适合学习:非常适合新手入门插件开发
❌ 局限性
- 依赖管理:目前主流类库多以模块化(ESM/CommonJS)方式提供,使用传统
<script>标签引入需要特殊处理 - 构建优化:缺少代码压缩、Tree Shaking 等现代构建优化
- 类型检查:无 TypeScript 支持,缺少编译时类型检查
- 复杂场景:不适合需要大量外部依赖或复杂 UI 框架的项目
如果你的插件需要以下功能,建议使用官方或第三方完整模板:
- React/Vue/Svelte 等前端框架
- 大量 npm 包依赖
- TypeScript 类型支持
- 复杂的构建流程
💡 适用场景示例
- 简单的快捷命令插件
- 文本处理工具
- 自定义快捷键绑定
- 简单的 UI 扩展(如顶栏按钮)
- 数据导出/导入工具
- 轻量级主题调整
📚 相关资源
🤝 贡献
如果你喜欢这个模板或者这个模板帮助到了你,不妨给个 Star ⭐
📄 开源协议
本项目采用 MIT 协议开源,详见 LICENSE 文件。
🙏 致谢
感谢思源笔记团队提供的优秀插件系统,感谢所有为简化插件开发而努力的开发者们!
祝你开发愉快!🎉
以上由 Claude-Sonnet4.5 整理和撰写


17G 的思源见过吗?我玩出来过。交换内存我都干到过 24 G。反正在 Mac 上,大多数时候我很少碰到卡到不能用的时候。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于