You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Monorepo中同时构建Vue3与Vue2应用遇TypeError问题求助

Vue3项目在Monorepo构建时出现TypeError问题排查

错误信息

构建Vue3应用时触发如下错误:

error  in ./src/App.vue

Syntax Error: TypeError: Cannot read properties of undefined (reading 'styles')


ERROR in ./src/App.vue

Module build failed (from ../../node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js):

TypeError: Cannot read properties of undefined (reading 'styles')
    at Object.loader (../../node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js:70:34)

 @ ./src/main.ts 2:0-28 5:10-13

相关环境信息

Monorepo工具: TurboRepo
包管理器: yarn v1

Vue3版本: 3.2.13
Vue2版本: 2.6.11

Vue3 cli版本: 5.0.8
Vue2 cli版本: 4.5.17

webpack for vue3: 5.54
webpack for vue2: 4.46

项目文件夹结构

├─ apps/
│  ├─ vue3-app/
│  │  ├─ package.json
│  ├─ vue2-app-1/
│  │  ├─ package.json
│  ├─ vue2-app-2/
│  │  ├─ package.json
├─ package.json

根目录workspaces配置

根目录package.json中声明了workspaces及nohoist规则:

"workspaces": {
    "packages": [
      "apps/vue2-app-1",
      "apps/vue2-app-2",
      "apps/vue3-app"
    ],
    "nohoist": [
      "vue3-app/**/vue",
      "vue3-app/**/vue/**",
      "vue2-app-1/**/vue/**",
      "vue2-app-1/**/vue/**",
      "vue2-app-2/**/vue/**",
      "vue2-app-2/**/vue/**",
      "vue3-app/**/vue-loader",
      "vue3-app/**/vue-loader/**",
      "vue2-app-1/**/vue-loader/**",
      "vue2-app-1/**/vue-loader/**",
      "vue2-app-2/**/vue-loader/**",
      "vue2-app-2/**/vue-loader/**"
    ]
}

已尝试的操作

  • 怀疑根目录node_modules中的包版本冲突,导致Vue3加载了错误依赖,因此配置了yarn的nohoist选项隔离Vue及vue-loader版本,但问题未得到解决。

请问可能是什么原因导致该问题?

内容的提问来源于stack exchange,提问作者plachu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:25:39