插件赞助与商业化
插件做大了之后,维护成本随之上升:issue 处理、功能迭代、文档维护都占用时间。让插件产生回报,既是对维护者的补偿,也是项目可持续运行的保障。
sponsor 字段与赞助链接
package.json 声明
sponsor 字段在 VS Code 扩展面板中显示"赞助"按钮:
{
"name": "my-extension",
"displayName": "My Extension",
"sponsor": {
"url": "https://github.com/sponsors/zhangsan"
}
}用户在扩展详情页点击 Sponsor 按钮,会跳转到指定赞助页面。
支持渠道
| 渠道 | 特点 | 适用对象 |
|---|---|---|
| GitHub Sponsors | 免手续费,国际化 | GitHub 上的开源项目 |
| 爱发电 | 国内常用,支持支付宝/微信 | 面向国内用户 |
| 微信/支付宝打赏码 | 直接,无中间平台 | 个人小项目 |
| Buy Me a Coffee | 一键赞助 | 海外用户 |
README 中的赞助说明
## 赞助
如果你觉得这个插件有用,欢迎赞助支持:
- [GitHub Sponsors](https://github.com/sponsors/zhangsan)
- [爱发电](https://afdian.com/a/zhangsan)
赞助所得将用于:
- 服务器与域名费用
- 功能开发与测试
- 文档与示例维护赞助说明要写明资金用途,透明公开能提高赞助转化率。
赞助回报梯度
常见的回报设计:
## 赞助等级
- 月度赞助:获得赞助者徽章,出现在插件页感谢名单
- 一次性赞助:按金额设置感谢档位
- 企业赞助:可协商定制功能优先级Extension Pack 捆绑发布
extensionPack 字段
Extension Pack 是一个特殊的扩展,本身不含功能代码,只负责捆绑安装一组扩展:
{
"name": "my-toolkit",
"displayName": "My Toolkit - 开发者工具包",
"description": "一套前端开发全家桶:格式化、Lint、主题与图标",
"publisher": "mypublisher",
"version": "1.0.0",
"engines": { "vscode": "^1.85.0" },
"categories": ["Extension Packs"],
"extensionPack": [
"mypublisher.my-formatter",
"mypublisher.my-linter",
"mypublisher.my-theme",
"mypublisher.my-icons"
]
}安装 Extension Pack 时,extensionPack 中列出的扩展会被一起安装。
包内扩展的协同
捆绑包的扩展之间可以互相感知,提供组合体验:
// 包内扩展 A:提供格式化能力
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
// 检测包内兄弟扩展是否已安装
const themeExt = vscode.extensions.getExtension('mypublisher.my-theme');
if (themeExt) {
// 兄弟扩展存在,启用主题联动
vscode.window.setStatusBarMessage('已检测到配套主题');
}
}{
"extensionDependencies": ["mypublisher.my-theme"]
}| 字段 | 语义 | 协同方式 |
|---|---|---|
extensionPack | 一起安装,各自独立 | 组合出现,形成品牌 |
extensionDependencies | 强依赖,自动安装 | 调用对方 API 时必须 |
包内版本一致性
捆绑包的每个扩展更新时都要同步处理:要么单独发布版本让用户自行更新,要么给 Extension Pack 发版本提醒安装。常见做法是包内扩展各自独立发版,Extension Pack 在 major 升级时才同步发版。
Extension Pack 的发布要求
Marketplace 规定 Extension Pack 必须:
categories包含Extension PacksextensionPack字段列出全部成员- 每个成员必须是已发布且存在的扩展
VS Code 扩展市场收费标准
官方市场的免费原则
VS Code 官方 Marketplace 与 Open VSX 均以免费扩展为主流。插件本身不提供付费购买入口,商业化的常见路径是"免费核心 + 付费周边"。
三种商业模式的边界
| 模式 | 做法 | 合规要点 |
|---|---|---|
| 免费开源 | 全部功能免费,靠赞助与捐赠 | 无边界问题 |
| 免费核心 + 付费周边 | 核心功能免费,文档/服务/定制收费 | 付费内容不能锁死在插件内 |
| 商业授权 | 企业内部分发授权 | 走线下授权,不在市场内售卖 |
禁止的做法
Marketplace 不允许:
- 在插件内做付费激活、许可证校验来解锁基础功能
- 把免费版功能降级到不可用,逼用户付费
- 在插件描述里误导用户"免费"与"付费"的关系
国内分发渠道
国内用户访问官方 Marketplace 不稳定,许多插件选择多平台分发:
| 渠道 | 特点 |
|---|---|
| Open VSX | 开源替代市场,免费 |
| 插件商店(VS Code 中国版) | 内置国内源 |
| 公司内网市场 | 企业私有化分发 |
开源 License 选择
常见 License 对比
| License | 特点 | 适用场景 |
|---|---|---|
| MIT | 宽松,可商用可闭源,需保留版权声明 | 大多数个人插件 |
| Apache-2.0 | 宽松,含专利授权条款,需声明修改 | 需要专利保护的项目 |
| GPL-3.0 | 传染性,衍生作品必须开源 | 追求开源精神的项目 |
| BSD-3-Clause | 宽松,类似 MIT,禁止用作者名义推广 | 学术项目 |
如何选择
| 场景 | 推荐 |
|---|---|
| 想让插件被广泛使用、允许闭源集成 | MIT 或 Apache-2.0 |
| 想强制衍生作品保持开源 | GPL-3.0 |
| 不确定 | MIT,最通用 |
声明方式
package.json 的 license 字段使用 SPDX 标识符:
{
"license": "MIT"
}同时项目根目录放置 LICENSE 文件:
MIT License
Copyright (c) 2026 Zhang San
Permission is hereby granted, free of charge, to any person obtaining a copy
...注意:package.json 声明了 license 但缺少 LICENSE 文件时,vsce 会提示或拒绝打包。
License 与商业化
- MIT/Apache 授权下,别人可以把你的插件用于商业产品
- 如果你希望保留商业化空间,License 之外再配合"商谈授权"约定(如企业定制协议)
- 使用第三方依赖时,检查其 License 是否允许你的分发方式
商业化合规要点
透明与诚信
- 插件描述如实反映功能边界,不夸大
- 赞助页面说明资金用途
- 付费周边(文档、服务)与免费核心明确区分
隐私与数据
- 插件收集任何数据都要在隐私政策中说明
- 遥测数据默认关闭或显式征得同意
- 不收集与功能无关的个人信息
商标与版权
- 不盗用其他插件的图标、名称
- 不冒充官方扩展
- README 中的商标引用注明出处
企业与个人两条路线
| 路线 | 形式 | 典型做法 |
|---|---|---|
| 个人 | 赞助 + 打赏 | GitHub Sponsors、爱发电 |
| 企业 | 技术咨询 + 定制开发 | 以插件为入口,提供付费服务 |
商业化的本质是价值交换:插件提供稳定的功能价值,用户以赞助或服务费回馈。License 决定别人能用你的代码做什么,sponsor 决定你能否持续做下去。