自动导入

源文件
Nuxt Kit 提供了一套工具,帮助你处理自动导入。这些函数允许你注册自定义的工具函数、组合式函数 (composables) 和 Vue API。

Nuxt 会自动导入辅助函数、组合式函数和 Vue API,以便在整个应用程序中使用,而无需显式导入它们。基于目录结构,每个 Nuxt 应用程序也可以为其自己的组合式函数和插件使用自动导入功能。

使用 Nuxt Kit,你还可以添加自己的自动导入。 addImportsaddImportsDir 允许你向 Nuxt 应用程序添加导入。 addImportsSources 允许你将第三方包中列出的导入添加到 Nuxt 应用程序中。

这些工具由unimport提供支持,它为 Nuxt 中的自动导入提供了底层机制。

这些函数旨在用于注册你自己的工具函数、组合式函数和 Vue API。对于页面 (pages)、组件 (components) 和插件 (plugins),请参考具体章节:页面 (Pages), 组件 (Components), 插件 (Plugins)
观看关于 Nuxt Kit 自动导入工具的 Vue School 视频。

addImports

向 Nuxt 应用程序添加导入。它使你的导入在 Nuxt 应用上下文中可用,而无需手动导入它们。

要为 Nitro 服务器上下文添加导入,请参考 addServerImports 函数。

使用

import { addImports, defineNuxtModule } 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导入的元数据。
类型booleanfalse如果此导入是纯类型导入。
typeFromstringfalse在生成类型声明时,将其用作 from 的值。
asstringfalse以该名称导入。

addImportsDir

从目录向 Nuxt 应用程序添加导入。它将自动导入该目录下的所有文件,并使它们在 Nuxt 应用程序中可用,而无需手动导入。

使用

import { addImportsDir, createResolver, defineNuxtModule } 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 { addImportsSources, defineNuxtModule } from '@nuxt/kit'

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

类型

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

参数

importSources: 一个包含以下属性的对象或对象数组

属性类型必需描述
fromstringtrue导入的模块说明符。
imports (导入)PresetImport | ImportSource[]true一个对象或对象数组,可以是导入名称、导入对象或导入源。