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

问题描述 投票:0回答:1

我正在构建一个 Vue3 npm 组件库,希望我可以使用 vue-router 的

useRouter
访问当前路由器,并且无论任何 vue 应用程序导入我的库组件,它都会自动提供。

如果直接引用我的库组件

import myCompThatUsesRouter from '../../myCompThatUsesRouter.vue
路由器就可以工作。

如果我通过node_module包引用相同的组件

import myCompThatUsesRouter from '@myPackage'
路由器是
undefined

我还收到 vue 警告

未找到注入“Symbol()”。

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

vue.js npm vue-router
1个回答
5
投票

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

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

vite.config.ts

rollupOptions: {
   external: ['vue', 'vue-router']
}
© www.soinside.com 2019 - 2024. All rights reserved.