layers/ 目录允许您在 Nuxt 应用中组织和共享可复用的代码、组件、组合函数和配置。项目中 layers/ 目录下的任意层都会被自动注册。
layers/ 目录的自动注册功能在 Nuxt v3.12.0 及以上版本可用。layers/ 目录下的每个子目录都会被视为一个独立的层。一个层的结构可以和标准的 Nuxt 应用相同。
nuxt.config.ts 文件才会被识别为有效层,即使该文件为空。-| layers/
---| base/
-----| nuxt.config.ts
-----| app/
-------| components/
---------| BaseButton.vue
-------| composables/
---------| useBase.ts
-----| server/
-------| api/
---------| hello.ts
---| admin/
-----| nuxt.config.ts
-----| app/
-------| pages/
---------| admin.vue
-------| layouts/
---------| admin.vue
会自动为每个层的 srcDir 创建命名层别名。你可以用 #layers/[name] 别名访问层:
// 访问 base 层
import something from '#layers/base/path/to/file'
// 访问 admin 层
import { useAdmin } from '#layers/admin/composables/useAdmin'
每个层可以包含:
nuxt.config.ts - 层特定配置,将与主配置合并app.config.ts - 响应式应用配置app/components/ - Vue 组件(自动导入)app/composables/ - Vue 组合函数(自动导入)app/utils/ - 工具函数(自动导入)app/pages/ - 应用页面app/layouts/ - 应用布局app/middleware/ - 路由中间件app/plugins/ - Nuxt 插件server/ - 服务器路由、中间件和工具shared/ - 应用和服务器间共享的代码当多个层定义了相同的资源(组件、组合函数、页面等)时,优先级高的层将生效。层按字母顺序排序,后面的字母优先级更高(Z > A)。
你可以用数字前缀控制顺序:1.base/, 2.features/, 3.admin/。