Skip to content

Taro 4.x Vue3 模板存在 Vite #19247

@functionwell

Description

@functionwell

请先确认

  • 我已搜索并确定这个提交不是重复的

Taro 版本

v4

相关领域

CLI

使用框架

Vue3

相关平台

  • 所有平台
  • Web 端(H5)
  • 移动端(React-Native)
  • 鸿蒙(Harmony)
  • 鸿蒙容器(Harmony Hybrid)
  • ASCF 元服务
  • 快应用(QuickApp)
  • 所有小程序
  • 微信小程序
  • 企业微信小程序
  • 京东小程序
  • 百度小程序
  • 支付宝小程序
  • 支付宝 IOT 小程序
  • 头条小程序
  • QQ 小程序
  • 钉钉小程序
  • 飞书小程序
  • 快手小程序

小程序基础库版本

No response

问题描述

问题描述

使用 Taro 4.x Vue3 模板创建项目后,无论使用模板默认的 Vite 4.x 版本还是手动升级到 Vite 5.x,都会遇到不同的依赖冲突错误,导致无法完成 npm install

环境信息

  • Node.js 版本: 20.20.1
  • npm 版本: 10.8.2
  • 操作系统: Windows 11
  • Taro CLI 版本: 4.2.0
  • 项目模板: Vue3 默认模板

复现步骤

方案 A:使用模板默认的 Vite 版本(vite@"^4.2.0")

  1. 使用 taro init 创建新的 Vue3 项目
  2. 执行 npm install
  3. 错误信息:
npm error Could not resolve dependency:
npm error peer vite@"^5.0.0 || ^6.0.0" from @vitejs/plugin-vue@5.2.4

方案 B:手动升级到 Vite 5.x

  1. 修改 package.json 中 "vite": "^4.2.0""vite": "^5.4.21"
  2. 删除 node_modules 和 package-lock.json
  3. 执行 npm install
  4. 错误信息:
npm error Could not resolve dependency:
npm error peerOptional vite@"^4" from @tarojs/plugin-framework-vue3@4.2.0

期望行为

模板应该能够开箱即用,无需手动调整依赖版本。

根本原因分析

项目依赖链存在不兼容:

  • @vitejs/plugin-vue@5.2.4 → 需要 vite@"^5.0.0 || ^6.0.0"
  • @tarojs/plugin-framework-vue3@4.2.0 → 需要 vite@"^4" (peerOptional)

两个核心插件对 Vite 版本的依赖相互矛盾,导致无论选择哪个版本都无法满足所有依赖要求。

可能的解决方案

  1. 方案一:升级 @tarojs/plugin-framework-vue3 以支持 Vite 5.x(推荐)
  2. 方案二:降级 @vitejs/plugin-vue 到支持 Vite 4.x 的版本
  3. 方案三:明确文档说明并提供 --legacy-peer-deps 的临时解决方案
  4. 方案四:发布 Vite 5.x 兼容版本的 Taro 4.x 补丁

补充信息

当前 package.json 关键依赖:

{
  "devDependencies": {
    "vite": "^4.2.0",  // 或 "^5.4.21"
    "@vitejs/plugin-vue": "^5.0.4"
  },
  "dependencies": {
    "@tarojs/plugin-framework-vue3": "4.2.0"
  }
}

完整依赖冲突链:

@vitejs/plugin-vue@5.2.4     →  需要 vite@"^5.0.0 || ^6.0.0"
@tarojs/plugin-framework-vue3 →  需要 vite@"^4"  (peerOptional)

复现链接

https://github.com/NervJS/taro/blob/main/packages/taro-cli/templates/default/package.json.tmpl

复现步骤

方案 A:使用模板默认的 Vite 版本(vite@"^4.2.0")

  1. 使用 taro init 创建新的 Vue3 项目
  2. 执行 npm install
  3. 错误信息:
npm error Could not resolve dependency:
npm error peer vite@"^5.0.0 || ^6.0.0" from @vitejs/plugin-vue@5.2.4

方案 B:手动升级到 Vite 5.x

  1. 修改 package.json 中 "vite": "^4.2.0""vite": "^5.4.21"
  2. 删除 node_modules 和 package-lock.json
  3. 执行 npm install
  4. 错误信息:
npm error Could not resolve dependency:
npm error peerOptional vite@"^4" from @tarojs/plugin-framework-vue3@4.2.0

环境信息

### 环境信息
- **Node.js 版本**: 20.20.1
- **npm 版本**: 10.8.2  
- **操作系统**: Windows 11
- **Taro CLI 版本**: 4.2.0
- **项目模板**: Vue3 默认模板

开源贡献

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-cliArea - CLI 相关F-vue3Framework - Vue 3T-alipayTarget - 编译到支付宝小程序T-ddT-feishuT-h5Target - 编译到 H5T-harmonyTarget - 编译到 HarmonyT-harmony_hybridTarget - 编译到 Harmony (Hybird 模式)T-jdTarget - 编译到京东小程序T-kwaiT-qqTarget - 编译到 QQ 小程序T-quickappTarget - 编译到快应用T-qyT-rnTarget - 编译到 React NativeT-swanTarget - 编译到百度小程序T-ttTarget - 编译到字节跳动小程序T-weappTarget - 编译到微信小程序V-4Version - 4.xbugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Todo
    Status
    Padding

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions