Nuxt 3 忽略命名组件的文件路径?
Nuxt 3 ignore filepath for naming components?
我正在迁移到 NuxtJS 3,但我的项目有多个级别的 component
文件夹:
/components
/foo
file.vue
file2.vue
/fooTwo
anotherfile.vue
/bar
file1.vue
file10.vue
etc...
由于 Nuxt's naming convention,如果我尝试导入 anotherfile
组件,我必须将它在我的代码库中使用的每个地方重命名为:<FooFooTwoanotherfile/>
因为他们documentation states:
the component's name will be based on its own path directory and filename
我真的不想遍历并重命名该组件正在使用的每个地方。而且我也不想展平我的目录结构。那么,Nuxt 3 中是否有一些配置选项可以覆盖它并让我只使用它们的原始名称全局调用组件?
正如@kissu 所建议的那样,这就是答案:
//nuxt.config.ts
components: [
{
path: '~/components', // will get any components nested in let's say /components/test too
pathPrefix: false, //<------------------- here
},
]
我的 仍然与 Nuxt3 相关
nuxt.config.ts
import { defineNuxtConfig } from 'nuxt'
export default defineNuxtConfig({
components: [
{
path: '~/components', // will get any components nested in let's say /components/nested
pathPrefix: false,
},
]
})
并且将允许您 auto-import 组件而无需为组件指定嵌套路径。
/pages/index.vue
<template>
<div>
<yolo-swag /> <!-- no need for <nested-yolo-swag /> here -->
</div>
</template>
具有以下文件结构
我正在迁移到 NuxtJS 3,但我的项目有多个级别的 component
文件夹:
/components
/foo
file.vue
file2.vue
/fooTwo
anotherfile.vue
/bar
file1.vue
file10.vue
etc...
由于 Nuxt's naming convention,如果我尝试导入 anotherfile
组件,我必须将它在我的代码库中使用的每个地方重命名为:<FooFooTwoanotherfile/>
因为他们documentation states:
the component's name will be based on its own path directory and filename
我真的不想遍历并重命名该组件正在使用的每个地方。而且我也不想展平我的目录结构。那么,Nuxt 3 中是否有一些配置选项可以覆盖它并让我只使用它们的原始名称全局调用组件?
正如@kissu 所建议的那样,这就是答案:
//nuxt.config.ts
components: [
{
path: '~/components', // will get any components nested in let's say /components/test too
pathPrefix: false, //<------------------- here
},
]
我的
nuxt.config.ts
import { defineNuxtConfig } from 'nuxt'
export default defineNuxtConfig({
components: [
{
path: '~/components', // will get any components nested in let's say /components/nested
pathPrefix: false,
},
]
})
并且将允许您 auto-import 组件而无需为组件指定嵌套路径。
/pages/index.vue
<template>
<div>
<yolo-swag /> <!-- no need for <nested-yolo-swag /> here -->
</div>
</template>
具有以下文件结构