posts - 62,  comments - 16,  views - 14万

使用 Vue3 + Pinia + PNPM + Vite 开发一个前端项目时,运行preview,报错:

pinia Cannot read properties of undefined (reading '_s')

报错的代码是压缩后的:

function we(e, t, n) {
  let s, c;
  const u = typeof t == "function";
  typeof e == "string" ? ((s = e), (c = u ? n : t)) : ((c = e), (s = e.id));
  function a(o, h) {
    const f = ie();
    return (
      (o = o || (f ? ue(be, null) : null)),
      o && F(o),
      (o = H),
      o._s.has(s) || (u ? V(s, t, c, o) : ve(s, c, o)), // 报错位置
      o._s.get(s)
    );
  }
  return (a.$id = s), a;
}

大意像是读取一个 store的名称失败导致。而我确认这个 store 已经被注册(defineStore)了。
翻阅 pinia 源码,定位到位置:https://github.com/vuejs/pinia/blob/5c94d26e11f8d2ed0e01d5a615f8e014d799b4a0/packages/pinia/src/store.ts#L895-L966 ,不过依然不明确问题原因。

突然灵感乍现,有新发现,我这个工程是 pnpm workspace, 两个包都依赖了 pinia,但版本不一致了。统一版本后再 build,问题解决。

那么,怎么保证不同的包的相同依赖版本一致呢?pnpm 给出了方案:https://pnpm.io/package_json#pnpmoverrides

posted on   死宅程序员  阅读(843)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示