dcloudio / dcloudio/uni-app

【建议】优化 npm 软件包分发标签(dist-tags)及版本命名规范

Open
#5,927 1 comment 1 reaction 0 assignees View on GitHub
question
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.