Skip to content
This repository has been archived by the owner on Apr 6, 2023. It is now read-only.

feat(nuxt): auto-import utils/ directory #8817

Merged
merged 6 commits into from Nov 9, 2022
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/content/2.guide/2.directory-structure/1.composables.md
Expand Up @@ -5,9 +5,9 @@ head.title: Composables
description: Use the composables/ directory to auto-import your Vue composables into your application.
---

# Composables Directory
# Composables Directories

Nuxt 3 uses the `composables/` directory to automatically import your Vue composables into your application using [auto-imports](/guide/concepts/auto-imports)!
Nuxt 3 uses the `composables/` and `utils/` directories to automatically import your Vue composables into your application using [auto-imports](/guide/concepts/auto-imports)!

Under the hood, Nuxt auto generates the file `.nuxt/imports.d.ts` to declare the types.

Expand Down
5 changes: 5 additions & 0 deletions docs/content/2.guide/2.directory-structure/1.utils.md
@@ -0,0 +1,5 @@
---
navigation.icon: IconDirectory
title: 'utils'
redirect: /guide/directory-structure/composables
---
pi0 marked this conversation as resolved.
Show resolved Hide resolved
1 change: 1 addition & 0 deletions docs/public/_redirects
Expand Up @@ -7,6 +7,7 @@
/bridge /bridge/overview 302!
/guide /guide/concepts/auto-imports 302!
/guide/concepts /guide/concepts/auto-imports 302!
/guide/directory-structure/utils /guide/directory-structure/composables 302!

# Concepts
/concepts/introduction /getting-started/introduction 302!
Expand Down
2 changes: 1 addition & 1 deletion packages/nuxi/src/commands/dev.ts
Expand Up @@ -131,7 +131,7 @@ export default defineNuxtCommand({
const isDirChange = ['addDir', 'unlinkDir'].includes(event)
const isFileChange = ['add', 'unlink'].includes(event)
const pagesDir = resolve(currentNuxt.options.srcDir, currentNuxt.options.dir.pages)
const reloadDirs = ['components', 'composables'].map(d => resolve(currentNuxt.options.srcDir, d))
const reloadDirs = ['components', 'composables', 'utils'].map(d => resolve(currentNuxt.options.srcDir, d))

if (isDirChange) {
if (reloadDirs.includes(file)) {
Expand Down
1 change: 1 addition & 0 deletions packages/nuxt/src/imports/module.ts
Expand Up @@ -59,6 +59,7 @@ export default defineNuxtModule<Partial<ImportsOptions>>({
let composablesDirs: string[] = []
for (const layer of nuxt.options._layers) {
composablesDirs.push(resolve(layer.config.srcDir, 'composables'))
composablesDirs.push(resolve(layer.config.srcDir, 'utils'))
for (const dir of (layer.config.imports?.dirs ?? [])) {
if (!dir) {
continue
Expand Down
2 changes: 1 addition & 1 deletion packages/schema/src/types/imports.ts
Expand Up @@ -13,7 +13,7 @@ export interface ImportsOptions extends UnimportOptions {
* Directories to scan for auto imports.
*
* @see https://v3.nuxtjs.org/guide/directory-structure/composables/#how-files-are-scanned
* @default ['./composables']
* @default ['./composables', './utils']
*/
dirs?: string[]

Expand Down