vue-router useRouter 在构建库组件时不起作用

sta*_*eth 2 npm vue.js vue-router

我正在构建一个 Vue3 npm 组件库,希望我可以使用 vue-router 访问当前路由器useRouter,并且无论任何 vue 应用程序导入我的库组件,它都会自动提供。

如果直接引用我的库组件,则import myCompThatUsesRouter from '../../myCompThatUsesRouter.vue路由器可以工作。

如果我通过 node_module 包路由器引用相同的组件import myCompThatUsesRouter from '@myPackage'undefined.

我也收到 vue 警告

未找到注入“Symbol()”。

这不是这些注入方法的工作原理吗?

sta*_*eth 5

问题是我的库将 vue-router 定义为“依赖项”,而不是“peerDependency”。 https://nodejs.org/es/blog/npm/peer-dependency/

我的 vite 配置还需要将 vue-router 定义为“外部”

vite.config.ts

rollupOptions: {
   external: ['vue', 'vue-router']
}
Run Code Online (Sandbox Code Playgroud)