【建议】优化 npm 软件包分发标签(dist-tags)及版本命名规范
- Dominant language
- JavaScript
- Stars
- 41.6k
- Forks
- 3.7k
- Avg merge
- 7h 6m
- Merged PRs (30d)
- 6
Description
### 问题分类
uni-app
### 问题描述
#### 1. 现状与痛点
目前 `uni-app` 相关软件包(如 `@dcloudio/uni-app`)在 npm 上的标签维护存在以下问题:
- **默认版本滞后**:执行 `npm install` 默认安装的 `latest` 标签仍指向 Vue 2 版本(2.0.x),而 Vue 3 已成为主流开发选择。
- **标签语义混杂**:存在 `vue3`、`nvue3`、`alpha` 等多个重叠标签,用户难以直观判断哪个版本对应当前的 HBuilderX 正式版。
- **版本号过长**:当前版本号(如 `2.0.2-4080720251210002`)不便于开发者记忆和在 `package.json` 中手动管理。
#### 2. 改进建议
为了提升 uni-app npm 生态的开发者体验,建议参考以下业界标准(如 Vue, Vite, Element-Plus)进行优化:
- **更新 `latest` 标签**:将 Vue 3 的稳定版本设为 `latest`。对于仍需维护的 Vue 2 版本,建议改用 `legacy` 或 `v2` 标签,避免误导新用户。
- **统一发布渠道**:
- `latest`: 对应 HBuilderX 正式版。
- `beta` / `next`: 对应 HBuilderX 预发行版。
- `alpha`: 对应每日构建或实验性功能。
- **语义化版本(SemVer)规范化**:
建议将时间戳版本号改为预发布后缀形式,例如:`3.0.0-alpha.20260119`。这样符合 npm 的版本比对算法(SemVer logic),方便依赖自动升级。
- **自动化发布配置**:
在核心包的 `package.json` 中配置 `publishConfig`,防止误操作将测试版发布到 `latest`。
#### 3. 预期效果
- **降低上手门槛**:新用户执行 `npm i @dcloudio/uni-app` 即可获得最新的 Vue 3 环境。
- **生态对齐**:与 npm 社区主流实践保持一致,方便自动化工具(如 Dependabot, Renovate)检测更新。
### 附加信息
运行 `npm view @dcloudio/uni-app dist-tags`:
```json
{
"alpha": "2.0.2-alpha-5000020260106001",
"latest": "2.0.2-4080720251210002",
"next": "2.0.2-4080720251210002",
"nvue3": "3.0.0-alpha-3040320220324001",
"vue3": "3.0.0-alpha-5000020260104004"
}
```
Contributor guide
Assessment
This issue has not been assessed yet.