nuxt logo

文档翻译(非官方)

Nuxt 提供了一个强大的系统,允许您扩展默认文件、配置等。

Nuxt 的核心功能之一是层和扩展支持。您可以扩展默认的 Nuxt 应用程序以重用组件、工具和配置。层的结构几乎与标准的 Nuxt 应用程序相同,使其易于编写和维护。

用例

  • 使用 nuxt.configapp.config 在项目之间共享可重用的配置预设
  • 使用 components/ 目录创建组件库
  • 使用 composables/utils/ 目录创建工具和可组合库
  • 创建 Nuxt 模块预设
  • 在项目之间共享标准设置
  • 创建 Nuxt 主题
  • 通过实现模块化架构和支持领域驱动设计(DDD)模式来增强代码组织,适用于大型项目。

用法

默认情况下,项目中 ~~/layers 目录内的任何层将自动注册为项目中的层。

层自动注册是在 Nuxt v3.12.0 中引入的。

此外,这些层的 srcDir 将自动创建命名层别名。例如,您将能够通过 #layers/test 访问 ~~/layers/test 层。

命名层别名是在 Nuxt v3.16.0 中引入的。

此外,您可以通过在 nuxt.config 文件中添加 extends 属性来扩展层。

nuxt.config.ts
export default defineNuxtConfig({
  extends: [
    '../base',                     // 从本地层扩展
    '@my-themes/awesome',          // 从已安装的 npm 包扩展
    'github:my-themes/awesome#v1', // 从 git 仓库扩展
  ]
})

如果您从私有 GitHub 仓库扩展,还可以传递身份验证令牌:

nuxt.config.ts
export default defineNuxtConfig({
  extends: [
    // 每层配置
    ['github:my-themes/private-awesome', { auth: process.env.GITHUB_TOKEN }]
  ]
})

您可以通过在层源旁边的选项中指定来覆盖层的别名。

nuxt.config.ts
export default defineNuxtConfig({
  extends: [
    [
      'github:my-themes/awesome',
      { 
        meta: {
          name: 'my-awesome-theme',
        },
      },
    ],
  ]
})

Nuxt 使用 unjs/c12unjs/giget 来扩展远程层。查看文档以获取更多信息和所有可用选项。

另请参阅 guide > going-further > layers

示例