build: 包管理器切换为 pnpm,补 coordtransform 依赖

coordtransform 是真实缺失的依赖:src/package/booking/index.vue 与
src/package/user/{guide,siteGuide,map}.vue 早已在用它,但 package.json
从未声明。npm 布局下靠传递依赖碰巧解析到,干净安装后 build:h5 直接报
Rollup failed to resolve "coordtransform"。

包管理器切换:
- package.json 声明 packageManager: pnpm@12.15.0
- 移除 package-lock.json,只保留 pnpm-lock.yaml(由 pnpm import 从原
  npm 锁文件生成,版本逐一对齐)
- pnpm-workspace.yaml 设 nodeLinker: hoisted。uni-app 的 Rollup 插件
  只按项目根的 node_modules 解析裸模块,不跟随 pnpm 的符号链接布局;
  isolated 模式下 @ant-design/icons-vue → @ant-design/colors →
  @ctrl/tinycolor 这条链上逐个报 Rollup failed to resolve。扁平布局
  与 npm 一致,一次解决。
- allowBuilds 放行 @parcel/watcher、core-js、esbuild、vue-demi
  (pnpm 生成的占位符文件已填实值)

验证:pnpm install --frozen-lockfile、build:h5、build:mp-weixin 均通过;
type-check 为 217 个既有 TS6504(uni_modules 内 JS 文件的 allowJs 问题),
与切换前基线一致,无新增。
This commit is contained in:
2026-10-31 13:33:04 +08:00
parent ce831f2f89
commit ca67ea41a7
4 changed files with 9231 additions and 12829 deletions
-12829
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -1,6 +1,7 @@
{
"name": "uni-preset-vue",
"version": "0.0.0",
"packageManager": "pnpm@12.15.0",
"scripts": {
"dev:app": "uni -p app",
"dev:app-android": "uni -p app-android",
@@ -60,6 +61,7 @@
"@types/socket.io-client": "^3.0.0",
"@vitejs/plugin-vue": "^5.0.5",
"autoprefixer": "^9.8.8",
"coordtransform": "^2.1.2",
"crypto-js": "^4.2.0",
"dayjs": "^1.11.11",
"decimal.js": "^10.4.3",
+9219
View File
File diff suppressed because it is too large Load Diff
+10
View File
@@ -0,0 +1,10 @@
allowBuilds:
'@parcel/watcher': true
core-js: true
esbuild: true
vue-demi: true
# uni-app 的 Rollup 插件只按项目根的 node_modules 做裸模块解析,不跟随 pnpm
# 的符号链接布局(@ant-design/icons-vue → @ant-design/colors → @ctrl/tinycolor
# 会在传递依赖处失败)。扁平 node_modules 与 npm 布局一致。
nodeLinker: hoisted