Files
mp-vue/.workbuddy/memory/2026-07-20.md
赵忠林 324244fa11 fix(build): 修复打包过程中的依赖和导入错误
- 安装缺失的 sass 依赖解决预处理器报错问题
- 安装 element-plus 组件库依赖,修复相关页面构建失败
- 修正 customerLead 页面错误导入的 listUser 为 listUsers
- 确认修复后 pnpm build 成功,产物正常生成
- 更新 package.json 和 pnpm-lock.yaml,引入新依赖并锁定版本
2026-07-20 12:07:09 +08:00

2.7 KiB
Raw Blame History

2026-07-20 工作记录

复制 site-vue 登录页到 mp-vue

/Users/gxwebsoft/VUE/site-vue/src/views/passport/login 的登录页复制到当前项目 mp-vue/src/views/passport/login

关键发现

  • 两边 components/ 子目录完全一致,无需复制;仅 index.vue 有差异源为重构后的新版本22387 字节)。
  • 源登录页重构后依赖 site-vue 专属 APImp-vue 原本缺失:
    • loginByUserId / loginByEmail:写死了外部地址 https://server.websoft.top/api/...(非 mp-vue 后端)
    • loginBySuperAdminSms:走 SERVER_API_URL + '/loginBySuperAdminSms'
    • listAdminsByEmailAll(来自 @/api/system/user):同样指向 server.websoft.top
  • 用户确认采用「完整移植含 API」方案保留上述 websoft.top 硬编码地址(已知风险:登录会打到 site-vue 后端,需确认 mp-vue 后端是否支持这些接口)。

已改动文件

  1. src/views/passport/login/index.vue —— 直接覆盖为源版本。
  2. src/api/passport/login/index.ts —— 新增 loginByUserIdloginBySuperAdminSmsloginByEmail 三个函数。
  3. src/api/system/user/index.ts —— 新增 listAdminsByEmailAll 函数。
  4. src/api/passport/login/model/index.ts —— LoginParam 增加 userIdemail 字段。

验证

  • 所有 import 符号在 mp-vue 中均存在(@/routerQrCodeStatusResponseQrLogin 组件、configWebsiteField 等)。
  • 两边 User 模型字段一致(含 isSuperAdmintemplateId),表单初值与 LoginForm 类型匹配。
  • 全量类型检查(vue-tsc --noEmit)报 1178 个错误,但均出现在我未改动的文件(如 system/cache、house、shop/shopGoods 等),我改动的 4 个文件均未出现在错误列表中。
  • 实际构建 pnpm build 已通过。

修复打包报错sass / element-plus / listUser

用户反馈打包报错 Preprocessor dependency "sass" not found,逐步修复如下:

  1. 安装 sass 作为 devDependencypnpm add -D sass
  2. 继续构建发现 element-plus 未安装(src/views/cms/customerLead/index.vuesrc/views/cms/recommendation/index.vue 均导入)。执行 pnpm add element-plus,安装到 dependencies版本 2.14.3)。
  3. 继续构建发现 customerLead/index.vue 中导入 listUser(拼写错误),实际 API 导出为 listUsers。修正导入和调用处。
  4. 最终 pnpm build 成功完成(✓ 9738 modules transformeddist 产物正常生成)。

本次修复涉及文件

  • package.json / pnpm-lock.yaml / node_modules(新增 sasselement-plus@typescript-eslint/eslint-plugin 等依赖)
  • src/views/cms/customerLead/index.vuelistUserlistUsers