自动导入
Nuxt Kit 提供了一套工具,帮助你处理自动导入。这些函数允许你注册自定义的工具函数、组合式函数 (composables) 和 Vue API。
Nuxt 会自动导入辅助函数、组合式函数和 Vue API,以便在整个应用程序中使用,而无需显式导入它们。基于目录结构,每个 Nuxt 应用程序也可以为其自己的组合式函数和插件使用自动导入功能。
使用 Nuxt Kit,你还可以添加自己的自动导入。 addImports 和 addImportsDir 允许你向 Nuxt 应用程序添加导入。 addImportsSources 允许你将第三方包中列出的导入添加到 Nuxt 应用程序中。
这些工具由unimport提供支持,它为 Nuxt 中的自动导入提供了底层机制。
这些函数旨在用于注册你自己的工具函数、组合式函数和 Vue API。对于页面 (pages)、组件 (components) 和插件 (plugins),请参考具体章节:页面 (Pages), 组件 (Components), 插件 (Plugins)。
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: 一个包含以下属性的对象或对象数组
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
name | string | true | 要检测的导入名称。 |
from | string | true | 导入的模块说明符。 |
priority | number | false | 导入的优先级;如果多个导入具有相同的名称,将使用优先级最高的一个。 |
disabled | boolean | false | 如果此导入被禁用。 |
meta | Record<string, any> | false | 导入的元数据。 |
类型 | boolean | false | 如果此导入是纯类型导入。 |
typeFrom | string | false | 在生成类型声明时,将其用作 from 的值。 |
as | string | false | 以该名称导入。 |
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
参数
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
dirs | string | 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: 一个包含以下属性的对象或对象数组
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
from | string | true | 导入的模块说明符。 |
imports (导入) | PresetImport | ImportSource[] | true | 一个对象或对象数组,可以是导入名称、导入对象或导入源。 |