docs(cli): 收敛 README 中 pnpm 策略措辞

This commit is contained in:
2026-10-15 15:46:08 +08:00
parent 02e0189c6d
commit 94a6f3064e
+12 -5
View File
@@ -81,8 +81,10 @@ pnpm build:mp-weixin
## 版本口径(硬约束)
- `@dcloudio/*`(`uni-app` / `uni-components` / `uni-h5` / `uni-mp-weixin` / `vite-plugin-uni`)
- 五个编译器包(`@dcloudio/uni-app` / `uni-components` / `uni-h5` / `uni-mp-weixin` / `vite-plugin-uni`)
**必须同一版本**,按精确版本号 pin。具体值以 `package.json` 为准。
- `@dcloudio/types` **不受上面这条约束**:它是 IDE 用的类型定义,单独窄化到 `3.4.31`
(`@dcloudio/uni-app` 的 strict peer,不影响构建)。
- **绝不用 `@dcloudio` 包的 `latest` tag。** `latest` 指向 **Vue 2** 线
(实测 `npm view @dcloudio/uni-app dist-tags` → `latest: 2.0.2-5020620260917001`),
与 Vue 3 线同日期后缀、极易看错;Vue 3 线在精确版本号上(`vue3` tag 只给 alpha)。
@@ -93,11 +95,16 @@ pnpm build:mp-weixin
**`pnpm install` 报 `ERR_PNPM_IGNORED_BUILDS`、退出码非 0**
pnpm v11 起依赖的构建脚本默认不执行,且 `strictDepBuilds` 默认为 `true`,
pnpm 12 下依赖的构建脚本默认不执行,且 `strictDepBuilds` 默认为 `true`,
会把「被跳过的依赖构建脚本」判成安装失败。本项目已在 `pnpm-workspace.yaml` 里用 `allowBuilds`
显式复核(`esbuild` / `@parcel/watcher` / `core-js` / `core-js-pure`)。
注意旧的 `onlyBuiltDependencies` 在 pnpm v11 起已废弃:写在 `package.json` 的 `pnpm` 字段里会被
pnpm 12 明确告知「不再读取」,**无效**。
显式复核(`esbuild` / `@parcel/watcher` / `core-js` / `core-js-pure`),之后
`pnpm install --frozen-lockfile` 退出码 0(`node_modules/.modules.yaml` 里记着 `allowBuilds`、`pendingBuilds` 为空)。
这里只写实测到的事实(pnpm v12.11.2):生效的键是 `pnpm-workspace.yaml` 的 `allowBuilds`;
把 `onlyBuiltDependencies` 写进 `package.json` 的 `pnpm` 字段,pnpm 12 会明确打印
`The "pnpm" field in package.json is no longer read by pnpm`(并列出被忽略的键名),**无效**;
写在 `pnpm-workspace.yaml` 里同样不生效(既不告警、也不执行那批构建脚本)。
这个键究竟从哪个版本起失效,本仓库没有逐版本复现,不下版本学结论。
**构建输出一堆 sass `@import` / `legacy-js-api` 弃用告警**