我正在 Laravel 项目中开发 VueJS 3,并且我正在使用一个 JS 文件,该文件为我提供了用于 Markdown 工具栏的元素。基本上,它是一组函数,为我提供了应用所选降价选项的按钮。一切工作正常,但我收到了那些我希望它们消失的控制台错误。
它们都与这个类似:
Failed to resolve component: md-linedivider If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. at <Markdowntoolbar> at <Article onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< undefined > > at <BaseTransition mode="out-in" appear=false persisted=false ... > at <Transition enter-active-class="animate__animated animate__fadeInLeft" leave-active-class="animate__animated animate__bounceOutUp" mode="out-in" > at <RouterView> at <App> at <Bodycomponent> at <App>
这表示 md-linedivider 元素应通过compilerOptions.isCustomElement 从组件解析中排除。我确实到处寻找解决方案,但只找到了这个,但我的 laravel 项目中没有 vue.config.js 来应用它。我尝试在 webpack.mis.js 和 app.js 中执行此操作,但没有成功。
有人知道吗?
P粉0193532472024-03-26 14:34:53
对于 Nuxt3,您可以在 nuxt.config.ts
中设置值,如下所示。
export default defineNuxtConfig({ vue: { compilerOptions: { isCustomElement: (tag) => ['lite-youtube'].includes(tag), }, } })
P粉5295811992024-03-26 14:09:54
在您的webpack.mix.js中尝试一下
mix.js('resources/assets/js/app.js', 'public/js').vue({ options: { compilerOptions: { isCustomElement: (tag) => ['md-linedivider'].includes(tag), }, }, });
更新 4.8.22 - 对于 Vite 项目:vite.config.js
import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' export default defineConfig({ plugins: [ vue({ template: { compilerOptions: { isCustomElement: (tag) => ['md-linedivider'].includes(tag), } } }) ] })