diff --git a/README.md b/README.md index 1f4ac58..9e5e0ed 100644 --- a/README.md +++ b/README.md @@ -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` 弃用告警**