思源笔记轻量级插件开发模板(零依赖、零构建)

📌 项目背景

在思源笔记插件开发中,官方或第三方模板通常依赖大量开源库和构建工具。即使是简单的 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 刷新页面即可看到效果。

方法二:热加载脚本(实验性)

我编写了一个热加载脚本,可以自动检测文件变化并重新加载插件。

使用步骤:

  1. 下载脚本:hot-reload.js
  2. 修改脚本中的工作空间路径和 API Token
  3. 运行: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 整理和撰写

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    28446 引用 • 119783 回帖
  • 插件开发
    5 引用 • 29 回帖
1 操作
wilsons 在 2025-12-09 12:51:30 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • zuoez02 1 评论

    最初的插件都是直接手搓 index.js 和 index.css 的,直接在 plugins 目录里写就完了,啥都不用 😂

    就算是现在,我的插件库里有好多都是我直接手搓的

    6 还得是大佬 返璞归真 不过 ai 时代,简单的 UI 直接让 ai 搓一个,非工程化代码反而更方便:)
    wilsons
  • 其他回帖
  • node_modules 是本地开发时的一些依赖库的代码,大项目上 G 的情况都会出现。但实际上生产版本会经过专门的处理,最终的包大小只在几 MB 左右。比如叶归我记得总共也就 2MB 不到的样子(除去发布功能)。

    1 回复
  • wilsons

    不是吗?我这里官方默认安装依赖和构建完毕

    image.png

    1 回复
  • wilsons 1

    小试了一下,简单做了图片编辑工具

    https://github.com/wish5115/siyuan-image-studio

    不过,目前主要精力不在这,短时间内可能不会花太多时间写思源代码了。

    这个插件模板也是之前写的,现在整理完善了下。

  • 查看全部回帖