Nuxt3中为什么Auto Import的组件无法在客户端组件中自动导入?
我在Nuxt3项目里用客户端组件时,发现通过autoImport配置的组件没法自动导入,比如直接用Head标签会报错说找不到模块。明明在服务端组件里能正常工作,这是怎么回事?
尝试过在nuxt.config.ts里这样配置:
export default defineNuxtConfig({
components: true,
modules: [
'@unocss/nuxt',
'@vueuse/nuxt'
],
autoImports: {
dirs: ['~/composables/**']
}
})
但客户端组件里写const { useUser } = useState()时还是提示:
ERROR [vue-router] ./pages/index.vue
Module not found: Error: Can't resolve '~/composables/useUser' in ...
难道客户端组件需要单独配置自动导入路径吗?或者和setup语法糖有关?
autoImports配置里定义的东西,需要显式处理。解决办法其实不复杂,你得确保客户端组件能正确解析这些模块路径。代码给你:
另外,如果你用的是
语法糖,在客户端组件里最好显式声明一下模块来源,避免打包工具找不到路径。比如: