Skip to content

Conversation

ruan-cat
Copy link

@ruan-cat ruan-cat commented Oct 16, 2025

问题背景:为什么要更改?

vue-router 明确在未来的 v5 版本内不会提供 dist/vue-router.esm-bundler.js 导出文件

为什么选择在 vue-router v5 版本还没有发版的时候就提前适配?

在特定的 [email protected] 版本内,就会出现构建故障。

不更改会带来什么问题?

uniapp H5 项目在 [email protected] 版本下是失败的

如下图所示,在依赖关系指定为 [email protected] 时,是失败的。

2025-10-16-18-28-56

2025-10-16-18-30-02

uniapp H5 项目在 [email protected] 版本下是成功的

如下图所示,在依赖关系指定为 [email protected] 时,是成功的。

2025-10-16-17-57-29

uniapp H5 项目在 [email protected] 版本下是成功的

如下图所示,在依赖关系指定为 [email protected] 时,是成功的。

2025-10-16-18-48-32

2025-10-16-18-48-43

有什么故障先例?

模仿 pinia v3 版本的更改先例,提前更改 vue-router v5 版本的导入写法

预期被修改的文件

@ruan-cat
Copy link
Author

@chouchouji 你好,请审阅pr。

@chouchouji
Copy link
Member

应该是引入 vue-router.mjs,这个文件是一直存在的,vue-router.esm-bundler.js 的内容也是引入 vue-router.mjs

image

我不是很确定 vuejs/router#2572 说的内容是否对uniapp有潜在的影响,需要进行测试web和app端表现是否正常

@ruan-cat
Copy link
Author

@chouchouji 你说的对。已作出更改,现在改成导入 dist/vue-router.mjs 的写法,均满足 v4 和 v5 版本的要求。

@chouchouji
Copy link
Member

@chouchouji 你说的对。已作出更改,现在改成导入 dist/vue-router.mjs 的写法,均满足 v4 和 v5 版本的要求。

不要版本判断,修改为 dist/vue-router.mjs 应该也没问题吧

@chouchouji
Copy link
Member

还需要做一下验证,uniapp和uniappx的web端和uniapp的app端项目能不能正常运行

@ruan-cat
Copy link
Author

@chouchouji 你说的对。已作出更改,现在改成导入 dist/vue-router.mjs 的写法,均满足 v4 和 v5 版本的要求。

不要版本判断,修改为 dist/vue-router.mjs 应该也没问题吧

  1. 可以的,没有问题。未来 vue-router 会用 tsdown 构建 tsdown 的构建产物是包含有期望的 dist/vue-router.mjs 文件。
image
  1. 在现在的 [email protected] 内,存在 dist/vue-router.mjs 文件。
image

至少可以肯定,dist/vue-router.mjs 文件在 v4 和 v5 版本都是存在的。有足够的健壮性

稍后我新建一个全新的 uniapp vite-ts 项目,测试 web 端和 app 端场景下是否正常可用。

@ruan-cat
Copy link
Author

@chouchouji 自测结果如下,web端和app端均通过测试。

  1. 针对如下结构的测试项目,被测依赖 @dcloudio/vite-plugin-uni 以工作区的形式,直接链接到本地 uniapp monorepo 的一系列本地构建包。
image
  1. web端 H5,能够正常显示,且没有明显报错。
image
  1. 在本地使用 夜神模拟器 以app形式启动:
image
  1. 在模拟器内,app端能够正常运行。
image

@chouchouji
Copy link
Member

最好是测试一些大型项目,vue router主要是路由相关的,比如 hello-uniapp 和 hello-uniapp-x 这两个大型项目。还有要看看 uni-app-x 上是否正常

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants