自动导入

Nuxt Kit 提供了一组工具来帮助你处理自动导入。这些函数允许你注册自己的工具函数、组合式函数和 Vue API。

Nuxt 会自动导入辅助函数、组合式函数和 Vue API,使你无需显式导入即可在整个应用中使用。根据目录结构,每个 Nuxt 应用还可以为其自己的组合式函数和插件使用自动导入。

通过 Nuxt Kit,你还可以添加自己的自动导入。addImportsaddImportsDir 允许你向 Nuxt 应用添加导入。addImportsSources 允许你将第三方包的指定导入添加到 Nuxt 应用中。

这些工具由 unimport 提供支持,它是 Nuxt 使用的底层自动导入机制。

这些函数用于注册你自己的工具函数、组合式函数和 Vue API。对于页面、组件和插件,请参考相关章节:页面组件插件
观看 Vue School 关于 Nuxt Kit 自动导入工具的视频。

addImports

向 Nuxt 应用添加导入。它使你的导入在 Nuxt 应用中可用,无需手动导入。

使用方法

import { defineNuxtModule, addImports } from "@nuxt/kit";

export default defineNuxtModule({
  setup(options, nuxt) {
    const names = [
      "useStoryblok",
      "useStoryblokApi",
      "useStoryblokBridge",
      "renderRichText",
      "RichTextSchema"
    ];

    names.forEach((name) =>
      addImports({ name, as: name, from: "@storyblok/vue" })
    );
  }
})

类型

function addImports (imports: Import | Import[]): void

参数

imports:一个对象或对象数组,具有以下属性:

属性类型是否必需描述
namestringtrue要检测的导入名称。
fromstringtrue要从中导入的模块指定符。
prioritynumberfalse导入的优先级;如果多个导入具有相同名称,将使用优先级最高的导入。
disabledbooleanfalse该导入是否被禁用。
metaRecord<string, any>false导入的元数据。
typebooleanfalse该导入是否为纯类型导入。
typeFromstringfalse生成类型声明时使用的 from 值。
asstringfalse导入为该名称。

addImportsDir

向 Nuxt 应用添加来自目录的导入。它会自动导入目录中的所有文件,并使它们在 Nuxt 应用中可用,无需手动导入。

使用方法

import { defineNuxtModule, addImportsDir, createResolver } from '@nuxt/kit'

export default defineNuxtModule({
  meta: {
    name: '@vueuse/motion',
    configKey: 'motion',
  },
  setup(options, nuxt) {
    const resolver = createResolver(import.meta.url)
    addImportsDir(resolver.resolve('./runtime/composables'))
  },
})

类型

function addImportsDir (dirs: string | string[], options?: { prepend?: boolean }): void

参数

属性类型是否必需描述
dirsstring | string[]true一个字符串或字符串数组,指定要导入的目录路径。
options{ prepend?: boolean }false传递给导入的选项。如果 prepend 设置为 true,导入将被添加到导入列表的前面。

addImportsSources

向 Nuxt 应用添加指定的导入。

使用方法

import { defineNuxtModule, addImportsSources } from '@nuxt/kit'

export default defineNuxtModule({
  setup() {
    addImportsSources({
      from: 'h3',
      imports: [
        'defineEventHandler',
        'getQuery',
        'getRouterParams',
        'readBody',
        'sendRedirect'
      ],
    })
  }
})

类型

function addImportsSources (importSources: ImportSource | ImportSource[]): void

参数

importSources:一个对象或对象数组,具有以下属性:

属性类型是否必需描述
fromstringtrue要从中导入的模块指定符。
importsPresetImport | ImportSource[]true一个对象或对象数组,可以是导入名称、导入对象或导入源。