diff --git a/docs/content/2.guide/3.directory-structure/5.composables.md b/docs/content/2.guide/3.directory-structure/5.composables.md index ee1bc9a7ed4..22f2ec1a9c0 100644 --- a/docs/content/2.guide/3.directory-structure/5.composables.md +++ b/docs/content/2.guide/3.directory-structure/5.composables.md @@ -16,14 +16,32 @@ For example: ```bash composables - | - useFoo.ts + | - useFoo.ts // scanned | - useBar - | --- supportingFile.ts - | --- index.ts + | --- supportingFile.ts // not scanned + | --- index.ts // scanned ``` Only `useFoo.ts` and `useBar/index.ts` would be searched for imports - and if the latter is a default export, it would be registered as `useBar` rather than `index`. +To get auto imports for `useBar/supportingFile.ts`, you have to re-export the composables you need from the `useBar/index.ts` file. + +```js [composables/useBar/index.ts] +export default const useBar () { +} + +// Enables auto import for this export +export { useBaz } from './supportingFile' +``` + +::alert{type=warning} +Auto import generating doesn't work with `export * from './supportingFile.ts'`, you must use named exports or a default export. +:: + +Under the hood, Nuxt auto generates the file `.nuxt/auto-imports.d.ts` to declare the types. + +Be aware that you have to run `nuxi prepare`, `nuxi dev` or `nuxi build` in order to let Nuxt generates the types. If you create a composable without having the dev server running, typescript will throw an error `Cannot find name 'useBar'.` + ## Example: (using named export) ```js [composables/useFoo.ts]