@nuxt/docs-nightly 4.2.2-29382831.243261ed → 4.2.2-29385843.5bf66d4f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/1.getting-started/01.introduction.md +1 -1
  2. package/1.getting-started/03.configuration.md +5 -5
  3. package/1.getting-started/04.views.md +5 -5
  4. package/1.getting-started/05.assets.md +7 -7
  5. package/1.getting-started/06.styling.md +5 -5
  6. package/1.getting-started/07.routing.md +7 -7
  7. package/1.getting-started/08.seo-meta.md +3 -3
  8. package/1.getting-started/09.transitions.md +6 -6
  9. package/1.getting-started/10.data-fetching.md +2 -2
  10. package/1.getting-started/11.state-management.md +2 -2
  11. package/1.getting-started/12.error-handling.md +3 -3
  12. package/1.getting-started/13.server.md +2 -2
  13. package/1.getting-started/14.layers.md +3 -3
  14. package/1.getting-started/16.deployment.md +1 -1
  15. package/1.getting-started/17.testing.md +1 -1
  16. package/1.getting-started/18.upgrade.md +6 -6
  17. package/2.directory-structure/0.nuxt.md +1 -1
  18. package/2.directory-structure/0.output.md +1 -1
  19. package/2.directory-structure/1.app/1.assets.md +2 -2
  20. package/2.directory-structure/1.app/1.components.md +2 -2
  21. package/2.directory-structure/1.app/1.composables.md +2 -2
  22. package/2.directory-structure/1.app/1.layouts.md +3 -3
  23. package/2.directory-structure/1.app/1.middleware.md +1 -1
  24. package/2.directory-structure/1.app/1.pages.md +7 -7
  25. package/2.directory-structure/1.app/1.plugins.md +2 -2
  26. package/2.directory-structure/1.app/1.utils.md +3 -3
  27. package/2.directory-structure/1.app/3.app.md +4 -4
  28. package/2.directory-structure/1.content.md +1 -1
  29. package/2.directory-structure/1.modules.md +1 -1
  30. package/2.directory-structure/1.node_modules.md +1 -1
  31. package/2.directory-structure/1.server.md +3 -3
  32. package/2.directory-structure/1.shared.md +3 -3
  33. package/2.directory-structure/2.env.md +2 -2
  34. package/2.directory-structure/2.nuxtignore.md +1 -1
  35. package/2.directory-structure/2.nuxtrc.md +1 -1
  36. package/2.directory-structure/3.nuxt-config.md +1 -1
  37. package/2.directory-structure/3.package.md +1 -1
  38. package/2.directory-structure/index.md +24 -24
  39. package/3.guide/1.concepts/{3.rendering.md → 1.rendering.md} +1 -27
  40. package/3.guide/1.concepts/{2.vuejs-development.md → 10.vuejs-development.md} +4 -3
  41. package/3.guide/1.concepts/{10.nuxt-lifecycle.md → 2.nuxt-lifecycle.md} +32 -25
  42. package/3.guide/1.concepts/{1.auto-imports.md → 3.auto-imports.md} +5 -5
  43. package/3.guide/1.concepts/4.server-engine.md +3 -3
  44. package/3.guide/1.concepts/5.modules.md +1 -1
  45. package/3.guide/1.concepts/7.esm.md +1 -0
  46. package/3.guide/1.concepts/8.typescript.md +4 -4
  47. package/3.guide/2.best-practices/performance.md +2 -2
  48. package/3.guide/3.ai/.navigation.yml +3 -0
  49. package/3.guide/3.ai/1.mcp.md +255 -0
  50. package/3.guide/3.ai/2.llms-txt.md +65 -0
  51. package/3.guide/{3.recipes → 4.recipes}/1.custom-routing.md +1 -1
  52. package/3.guide/{3.recipes → 4.recipes}/2.vite-plugin.md +1 -1
  53. package/3.guide/{3.recipes → 4.recipes}/3.custom-usefetch.md +1 -1
  54. package/3.guide/{3.recipes → 4.recipes}/4.sessions-and-authentication.md +1 -1
  55. package/3.guide/{4.going-further → 5.going-further}/1.events.md +2 -3
  56. package/3.guide/{4.going-further → 5.going-further}/1.experimental-features.md +4 -4
  57. package/3.guide/{4.going-further → 5.going-further}/1.internals.md +3 -2
  58. package/3.guide/{4.going-further → 5.going-further}/10.runtime-config.md +2 -2
  59. package/3.guide/{4.going-further → 5.going-further}/2.hooks.md +2 -2
  60. package/3.guide/{4.going-further → 5.going-further}/3.modules.md +2 -2
  61. package/3.guide/{4.going-further → 5.going-further}/6.nuxt-app.md +3 -3
  62. package/3.guide/{4.going-further → 5.going-further}/7.layers.md +11 -11
  63. package/4.api/1.components/12.nuxt-route-announcer.md +1 -1
  64. package/4.api/1.components/2.nuxt-page.md +2 -2
  65. package/4.api/1.components/3.nuxt-layout.md +5 -5
  66. package/4.api/1.components/5.nuxt-loading-indicator.md +1 -1
  67. package/4.api/1.components/7.nuxt-welcome.md +2 -2
  68. package/4.api/2.composables/use-app-config.md +1 -1
  69. package/4.api/2.composables/use-nuxt-app.md +4 -4
  70. package/4.api/2.composables/use-response-header.md +1 -1
  71. package/4.api/2.composables/use-route.md +1 -1
  72. package/4.api/2.composables/use-router.md +2 -2
  73. package/4.api/2.composables/use-runtime-config.md +1 -1
  74. package/4.api/3.utils/$fetch.md +1 -1
  75. package/4.api/3.utils/abort-navigation.md +1 -1
  76. package/4.api/3.utils/add-route-middleware.md +1 -1
  77. package/4.api/3.utils/define-nuxt-plugin.md +2 -2
  78. package/4.api/3.utils/define-nuxt-route-middleware.md +1 -1
  79. package/4.api/3.utils/define-page-meta.md +6 -6
  80. package/4.api/3.utils/navigate-to.md +1 -1
  81. package/4.api/3.utils/update-app-config.md +2 -2
  82. package/4.api/4.commands/module.md +3 -3
  83. package/4.api/4.commands/prepare.md +1 -1
  84. package/4.api/4.commands/preview.md +1 -1
  85. package/4.api/4.commands/typecheck.md +1 -1
  86. package/4.api/5.kit/1.modules.md +1 -1
  87. package/4.api/5.kit/2.programmatic.md +2 -2
  88. package/4.api/6.advanced/1.hooks.md +1 -1
  89. package/4.api/6.nuxt-config.md +4 -4
  90. package/5.community/6.roadmap.md +4 -4
  91. package/6.bridge/1.overview.md +1 -1
  92. package/6.bridge/2.typescript.md +1 -1
  93. package/6.bridge/3.bridge-composition-api.md +1 -1
  94. package/6.bridge/4.plugins-and-middleware.md +2 -2
  95. package/7.migration/11.server.md +1 -1
  96. package/7.migration/2.configuration.md +2 -2
  97. package/7.migration/20.module-authors.md +1 -1
  98. package/7.migration/3.auto-imports.md +1 -1
  99. package/7.migration/5.plugins-and-middleware.md +2 -2
  100. package/7.migration/6.pages-and-layouts.md +6 -6
  101. package/package.json +1 -1
  102. /package/3.guide/{3.recipes → 4.recipes}/.navigation.yml +0 -0
  103. /package/3.guide/{4.going-further → 5.going-further}/.navigation.yml +0 -0
  104. /package/3.guide/{4.going-further → 5.going-further}/1.features.md +0 -0
  105. /package/3.guide/{4.going-further → 5.going-further}/11.nightly-release-channel.md +0 -0
  106. /package/3.guide/{4.going-further → 5.going-further}/4.kit.md +0 -0
  107. /package/3.guide/{4.going-further → 5.going-further}/9.debugging.md +0 -0
  108. /package/3.guide/{4.going-further → 5.going-further}/index.md +0 -0
@@ -7,7 +7,7 @@ Nuxt layers are a powerful feature that you can use to share and reuse partial N
7
7
 
8
8
  :read-more{to="/docs/4.x/getting-started/layers"}
9
9
 
10
- A minimal Nuxt layer directory should contain a [`nuxt.config.ts`](/docs/4.x/guide/directory-structure/nuxt-config) file to indicate it is a layer.
10
+ A minimal Nuxt layer directory should contain a [`nuxt.config.ts`](/docs/4.x/directory-structure/nuxt-config) file to indicate it is a layer.
11
11
 
12
12
  ```ts [base/nuxt.config.ts]
13
13
  export default defineNuxtConfig({})
@@ -15,16 +15,16 @@ export default defineNuxtConfig({})
15
15
 
16
16
  Additionally, certain other files in the layer directory will be auto-scanned and used by Nuxt for the project extending this layer.
17
17
 
18
- - [`app/components/*`](/docs/4.x/guide/directory-structure/app/components) - Extend the default components
19
- - [`app/composables/*`](/docs/4.x/guide/directory-structure/app/composables) - Extend the default composables
20
- - [`app/layouts/*`](/docs/4.x/guide/directory-structure/app/layouts) - Extend the default layouts
21
- - [`app/middleware/*`](/docs/4.x/guide/directory-structure/app/middleware) - Extend the default middleware
22
- - [`app/pages/*`](/docs/4.x/guide/directory-structure/app/pages) - Extend the default pages
23
- - [`app/plugins/*`](/docs/4.x/guide/directory-structure/app/plugins) - Extend the default plugins
24
- - [`app/utils/*`](/docs/4.x/guide/directory-structure/app/utils) - Extend the default utils
25
- - [`app/app.config.ts`](/docs/4.x/guide/directory-structure/app/app-config) - Extend the default app config
26
- - [`server/*`](/docs/4.x/guide/directory-structure/server) - Extend the default server endpoints & middleware
27
- - [`nuxt.config.ts`](/docs/4.x/guide/directory-structure/nuxt-config)- Extend the default nuxt config
18
+ - [`app/components/*`](/docs/4.x/directory-structure/app/components) - Extend the default components
19
+ - [`app/composables/*`](/docs/4.x/directory-structure/app/composables) - Extend the default composables
20
+ - [`app/layouts/*`](/docs/4.x/directory-structure/app/layouts) - Extend the default layouts
21
+ - [`app/middleware/*`](/docs/4.x/directory-structure/app/middleware) - Extend the default middleware
22
+ - [`app/pages/*`](/docs/4.x/directory-structure/app/pages) - Extend the default pages
23
+ - [`app/plugins/*`](/docs/4.x/directory-structure/app/plugins) - Extend the default plugins
24
+ - [`app/utils/*`](/docs/4.x/directory-structure/app/utils) - Extend the default utils
25
+ - [`app/app.config.ts`](/docs/4.x/directory-structure/app/app-config) - Extend the default app config
26
+ - [`server/*`](/docs/4.x/directory-structure/server) - Extend the default server endpoints & middleware
27
+ - [`nuxt.config.ts`](/docs/4.x/directory-structure/nuxt-config)- Extend the default nuxt config
28
28
 
29
29
  ## Basic Example
30
30
 
@@ -14,7 +14,7 @@ This component is available in Nuxt v3.12+.
14
14
 
15
15
  ## Usage
16
16
 
17
- Add `<NuxtRouteAnnouncer/>` in your [`app.vue`](/docs/4.x/guide/directory-structure/app/app) or [`app/layouts/`](/docs/4.x/guide/directory-structure/app/layouts) to enhance accessibility by informing assistive technologies about page title changes. This ensures that navigational changes are announced to users relying on screen readers.
17
+ Add `<NuxtRouteAnnouncer/>` in your [`app.vue`](/docs/4.x/directory-structure/app/app) or [`app/layouts/`](/docs/4.x/directory-structure/app/layouts) to enhance accessibility by informing assistive technologies about page title changes. This ensures that navigational changes are announced to users relying on screen readers.
18
18
 
19
19
  ```vue [app/app.vue]
20
20
  <template>
@@ -8,7 +8,7 @@ links:
8
8
  size: xs
9
9
  ---
10
10
 
11
- `<NuxtPage>` is a built-in component that comes with Nuxt. It lets you display top-level or nested pages located in the [`app/pages/`](/docs/4.x/guide/directory-structure/app/pages) directory.
11
+ `<NuxtPage>` is a built-in component that comes with Nuxt. It lets you display top-level or nested pages located in the [`app/pages/`](/docs/4.x/directory-structure/app/pages) directory.
12
12
 
13
13
  ::note
14
14
  `<NuxtPage>` is a wrapper around [`<RouterView>`](https://router.vuejs.org/api/interfaces/routerviewprops) from Vue Router. It should be used instead of `<RouterView>` because the former takes additional care of internal states. Otherwise, `useRoute()` may return incorrect paths.
@@ -151,4 +151,4 @@ console.log(attrs.foobar) // Outputs: 123
151
151
  </script>
152
152
  ```
153
153
 
154
- :read-more{to="/docs/4.x/guide/directory-structure/app/pages"}
154
+ :read-more{to="/docs/4.x/directory-structure/app/pages"}
@@ -18,11 +18,11 @@ You can use `<NuxtLayout />` component to activate the `default` layout on `app.
18
18
  </template>
19
19
  ```
20
20
 
21
- :read-more{to="/docs/4.x/guide/directory-structure/app/layouts"}
21
+ :read-more{to="/docs/4.x/directory-structure/app/layouts"}
22
22
 
23
23
  ## Props
24
24
 
25
- - `name`: Specify a layout name to be rendered, can be a string, reactive reference or a computed property. It **must** match the name of the corresponding layout file in the [`app/layouts/`](/docs/4.x/guide/directory-structure/app/layouts) directory.
25
+ - `name`: Specify a layout name to be rendered, can be a string, reactive reference or a computed property. It **must** match the name of the corresponding layout file in the [`app/layouts/`](/docs/4.x/directory-structure/app/layouts) directory.
26
26
  - **type**: `string`
27
27
  - **default**: `default`
28
28
 
@@ -51,11 +51,11 @@ Please note the layout name is normalized to kebab-case, so if your layout file
51
51
  </template>
52
52
  ```
53
53
 
54
- ::read-more{to="/docs/4.x/guide/directory-structure/app/layouts"}
54
+ ::read-more{to="/docs/4.x/directory-structure/app/layouts"}
55
55
  Read more about dynamic layouts.
56
56
  ::
57
57
 
58
- - `fallback`: If an invalid layout is passed to the `name` prop, no layout will be rendered. Specify a `fallback` layout to be rendered in this scenario. It **must** match the name of the corresponding layout file in the [`app/layouts/`](/docs/4.x/guide/directory-structure/app/layouts) directory.
58
+ - `fallback`: If an invalid layout is passed to the `name` prop, no layout will be rendered. Specify a `fallback` layout to be rendered in this scenario. It **must** match the name of the corresponding layout file in the [`app/layouts/`](/docs/4.x/directory-structure/app/layouts) directory.
59
59
  - **type**: `string`
60
60
  - **default**: `null`
61
61
 
@@ -158,4 +158,4 @@ defineExpose({
158
158
 
159
159
  ::
160
160
 
161
- :read-more{to="/docs/4.x/guide/directory-structure/app/layouts"}
161
+ :read-more{to="/docs/4.x/directory-structure/app/layouts"}
@@ -10,7 +10,7 @@ links:
10
10
 
11
11
  ## Usage
12
12
 
13
- Add `<NuxtLoadingIndicator/>` in your [`app.vue`](/docs/4.x/guide/directory-structure/app/app) or [`app/layouts/`](/docs/4.x/guide/directory-structure/app/layouts).
13
+ Add `<NuxtLoadingIndicator/>` in your [`app.vue`](/docs/4.x/directory-structure/app/app) or [`app/layouts/`](/docs/4.x/directory-structure/app/layouts).
14
14
 
15
15
  ```vue [app/app.vue]
16
16
  <template>
@@ -4,7 +4,7 @@ description: The <NuxtWelcome> component greets users in new projects made from
4
4
  links:
5
5
  - label: Source
6
6
  icon: i-simple-icons-github
7
- to: https://github.com/nuxt/assets/blob/main/packages/templates/templates/welcome/index.html
7
+ to: https://github.com/nuxt/nuxt/blob/main/packages/ui-templates/templates/welcome/index.html
8
8
  size: xs
9
9
  ---
10
10
 
@@ -21,5 +21,5 @@ Preview the `<NuxtWelcome />` component.
21
21
  ::
22
22
 
23
23
  ::tip
24
- This component is part of [nuxt/assets](https://github.com/nuxt/assets).
24
+ This component is part of [`@nuxt/ui-templates`](https://github.com/nuxt/nuxt/tree/main/packages/ui-templates) package.
25
25
  ::
@@ -16,4 +16,4 @@ const appConfig = useAppConfig()
16
16
  console.log(appConfig)
17
17
  ```
18
18
 
19
- :read-more{to="/docs/4.x/guide/directory-structure/app/app-config"}
19
+ :read-more{to="/docs/4.x/directory-structure/app/app-config"}
@@ -30,7 +30,7 @@ By default, the shared runtime context of Nuxt is namespaced under the [`buildId
30
30
 
31
31
  ### `provide (name, value)`
32
32
 
33
- `nuxtApp` is a runtime context that you can extend using [Nuxt plugins](/docs/4.x/guide/directory-structure/app/plugins). Use the `provide` function to create Nuxt plugins to make values and helper methods available in your Nuxt application across all composables and components.
33
+ `nuxtApp` is a runtime context that you can extend using [Nuxt plugins](/docs/4.x/directory-structure/app/plugins). Use the `provide` function to create Nuxt plugins to make values and helper methods available in your Nuxt application across all composables and components.
34
34
 
35
35
  `provide` function accepts `name` and `value` parameters.
36
36
 
@@ -46,7 +46,7 @@ As you can see in the example above, `$hello` has become the new and custom part
46
46
 
47
47
  ### `hook(name, cb)`
48
48
 
49
- Hooks available in `nuxtApp` allows you to customize the runtime aspects of your Nuxt application. You can use runtime hooks in Vue.js composables and [Nuxt plugins](/docs/4.x/guide/directory-structure/app/plugins) to hook into the rendering lifecycle.
49
+ Hooks available in `nuxtApp` allows you to customize the runtime aspects of your Nuxt application. You can use runtime hooks in Vue.js composables and [Nuxt plugins](/docs/4.x/directory-structure/app/plugins) to hook into the rendering lifecycle.
50
50
 
51
51
  `hook` function is useful for adding custom logic by hooking into the rendering lifecycle at a specific point. `hook` function is mostly used when creating Nuxt plugins.
52
52
 
@@ -84,8 +84,8 @@ await nuxtApp.callHook('my-plugin:init')
84
84
 
85
85
  Some useful methods:
86
86
  - [`component()`](https://vuejs.org/api/application#app-component) - Registers a global component if passing both a name string and a component definition, or retrieves an already registered one if only the name is passed.
87
- - [`directive()`](https://vuejs.org/api/application#app-directive) - Registers a global custom directive if passing both a name string and a directive definition, or retrieves an already registered one if only the name is passed[(example)](/docs/4.x/guide/directory-structure/app/plugins#vue-directives).
88
- - [`use()`](https://vuejs.org/api/application#app-use) - Installs a **[Vue.js Plugin](https://vuejs.org/guide/reusability/plugins)** [(example)](/docs/4.x/guide/directory-structure/app/plugins#vue-plugins).
87
+ - [`directive()`](https://vuejs.org/api/application#app-directive) - Registers a global custom directive if passing both a name string and a directive definition, or retrieves an already registered one if only the name is passed[(example)](/docs/4.x/directory-structure/app/plugins#vue-directives).
88
+ - [`use()`](https://vuejs.org/api/application#app-use) - Installs a **[Vue.js Plugin](https://vuejs.org/guide/reusability/plugins)** [(example)](/docs/4.x/directory-structure/app/plugins#vue-plugins).
89
89
 
90
90
  :read-more{icon="i-simple-icons-vuedotjs" to="https://vuejs.org/api/application.html#application-api"}
91
91
 
@@ -37,7 +37,7 @@ header.value = 'my-value'
37
37
  </template>
38
38
  ```
39
39
 
40
- We can use `useResponseHeader` for example in Nuxt [middleware](/docs/4.x/guide/directory-structure/app/middleware) to set a response header for all pages.
40
+ We can use `useResponseHeader` for example in Nuxt [middleware](/docs/4.x/directory-structure/app/middleware) to set a response header for all pages.
41
41
 
42
42
  ```ts [app/middleware/my-header-middleware.ts]
43
43
  export default defineNuxtRouteMiddleware((to, from) => {
@@ -76,7 +76,7 @@ The `useRoute()` composable should only be used in the setup function of a Vue c
76
76
  This applies to any composable that uses `useRoute()` internally too.
77
77
  ::
78
78
 
79
- ::read-more{to="/docs/4.x/guide/directory-structure/app/middleware"}
79
+ ::read-more{to="/docs/4.x/directory-structure/app/middleware"}
80
80
  Read more about accessing the route in the middleware section.
81
81
  ::
82
82
 
@@ -49,7 +49,7 @@ router.resolve({ name: 'home' })
49
49
  ```
50
50
 
51
51
  ::note
52
- `router.addRoute()` adds route details into an array of routes and it is useful while building [Nuxt plugins](/docs/4.x/guide/directory-structure/app/plugins) while `router.push()` on the other hand, triggers a new navigation immediately and it is useful in pages, Vue components and composable.
52
+ `router.addRoute()` adds route details into an array of routes and it is useful while building [Nuxt plugins](/docs/4.x/directory-structure/app/plugins) while `router.push()` on the other hand, triggers a new navigation immediately and it is useful in pages, Vue components and composable.
53
53
  ::
54
54
 
55
55
  ## Based on History API
@@ -80,7 +80,7 @@ Read more about the browser's History API.
80
80
 
81
81
  However, Nuxt has a concept of **route middleware** that simplifies the implementation of navigation guards and provides a better developer experience.
82
82
 
83
- :read-more{to="/docs/4.x/guide/directory-structure/app/middleware"}
83
+ :read-more{to="/docs/4.x/directory-structure/app/middleware"}
84
84
 
85
85
  ## Promise and Error Handling
86
86
 
@@ -95,7 +95,7 @@ Any environment variables set within `.env` file are accessed using `process.env
95
95
  In **production runtime**, you should use platform environment variables and `.env` is not used.
96
96
  ::
97
97
 
98
- :read-more{to="/docs/4.x/guide/directory-structure/env"}
98
+ :read-more{to="/docs/4.x/directory-structure/env"}
99
99
 
100
100
  ## `app` namespace
101
101
 
@@ -11,7 +11,7 @@ links:
11
11
  Nuxt uses [ofetch](https://github.com/unjs/ofetch) to expose globally the `$fetch` helper for making HTTP requests within your Vue app or API routes.
12
12
 
13
13
  ::tip{icon="i-lucide-rocket"}
14
- During server-side rendering, calling `$fetch` to fetch your internal [API routes](/docs/4.x/guide/directory-structure/server) will directly call the relevant function (emulating the request), **saving an additional API call**.
14
+ During server-side rendering, calling `$fetch` to fetch your internal [API routes](/docs/4.x/directory-structure/server) will directly call the relevant function (emulating the request), **saving an additional API call**.
15
15
  ::
16
16
 
17
17
  ::note{color="blue" icon="i-lucide-info"}
@@ -9,7 +9,7 @@ links:
9
9
  ---
10
10
 
11
11
  ::warning
12
- `abortNavigation` is only usable inside a [route middleware handler](/docs/4.x/guide/directory-structure/app/middleware).
12
+ `abortNavigation` is only usable inside a [route middleware handler](/docs/4.x/directory-structure/app/middleware).
13
13
  ::
14
14
 
15
15
  ## Type
@@ -9,7 +9,7 @@ links:
9
9
  ---
10
10
 
11
11
  ::note
12
- Route middleware are navigation guards stored in the [`app/middleware/`](/docs/4.x/guide/directory-structure/app/middleware) directory of your Nuxt application (unless [set otherwise](/docs/4.x/api/nuxt-config#middleware)).
12
+ Route middleware are navigation guards stored in the [`app/middleware/`](/docs/4.x/directory-structure/app/middleware) directory of your Nuxt application (unless [set otherwise](/docs/4.x/api/nuxt-config#middleware)).
13
13
  ::
14
14
 
15
15
  ## Type
@@ -16,7 +16,7 @@ export default defineNuxtPlugin((nuxtApp) => {
16
16
  })
17
17
  ```
18
18
 
19
- :read-more{to="/docs/4.x/guide/directory-structure/app/plugins#creating-plugins"}
19
+ :read-more{to="/docs/4.x/directory-structure/app/plugins#creating-plugins"}
20
20
 
21
21
  ## Type
22
22
 
@@ -42,7 +42,7 @@ interface ObjectPlugin<T> {
42
42
  ## Parameters
43
43
 
44
44
  **plugin**: A plugin can be defined in two ways:
45
- 1. **Function Plugin**: A function that receives the [`NuxtApp`](/docs/4.x/guide/going-further/internals#the-nuxtapp-interface) instance and can return a promise with a potential object with a [`provide`](/docs/4.x/guide/directory-structure/app/plugins#providing-helpers) property if you want to provide a helper on [`NuxtApp`](/docs/4.x/guide/going-further/internals#the-nuxtapp-interface) instance.
45
+ 1. **Function Plugin**: A function that receives the [`NuxtApp`](/docs/4.x/guide/going-further/internals#the-nuxtapp-interface) instance and can return a promise with a potential object with a [`provide`](/docs/4.x/directory-structure/app/plugins#providing-helpers) property if you want to provide a helper on [`NuxtApp`](/docs/4.x/guide/going-further/internals#the-nuxtapp-interface) instance.
46
46
  2. **Object Plugin**: An object that can include various properties to configure the plugin's behavior, such as `name`, `enforce`, `dependsOn`, `order`, `parallel`, `setup`, `hooks`, and `env`.
47
47
 
48
48
  | Property | Type | Required | Description |
@@ -8,7 +8,7 @@ links:
8
8
  size: xs
9
9
  ---
10
10
 
11
- Route middleware are stored in the [`app/middleware/`](/docs/4.x/guide/directory-structure/app/middleware) of your Nuxt application (unless [set otherwise](/docs/4.x/api/nuxt-config#middleware)).
11
+ Route middleware are stored in the [`app/middleware/`](/docs/4.x/directory-structure/app/middleware) of your Nuxt application (unless [set otherwise](/docs/4.x/api/nuxt-config#middleware)).
12
12
 
13
13
  ## Type
14
14
 
@@ -8,7 +8,7 @@ links:
8
8
  size: xs
9
9
  ---
10
10
 
11
- `definePageMeta` is a compiler macro that you can use to set metadata for your **page** components located in the [`app/pages/`](/docs/4.x/guide/directory-structure/app/pages) directory (unless [set otherwise](/docs/4.x/api/nuxt-config#pages)). This way you can set custom metadata for each static or dynamic route of your Nuxt application.
11
+ `definePageMeta` is a compiler macro that you can use to set metadata for your **page** components located in the [`app/pages/`](/docs/4.x/directory-structure/app/pages) directory (unless [set otherwise](/docs/4.x/api/nuxt-config#pages)). This way you can set custom metadata for each static or dynamic route of your Nuxt application.
12
12
 
13
13
  ```vue [app/pages/some-page.vue]
14
14
  <script setup lang="ts">
@@ -18,7 +18,7 @@ definePageMeta({
18
18
  </script>
19
19
  ```
20
20
 
21
- :read-more{to="/docs/4.x/guide/directory-structure/app/pages#page-metadata"}
21
+ :read-more{to="/docs/4.x/directory-structure/app/pages#page-metadata"}
22
22
 
23
23
  ## Type
24
24
 
@@ -56,7 +56,7 @@ interface PageMeta {
56
56
 
57
57
  - **Type**: `string`
58
58
 
59
- You may define a name for this page's route. By default, name is generated based on path inside the [`app/pages/` directory](/docs/4.x/guide/directory-structure/app/pages).
59
+ You may define a name for this page's route. By default, name is generated based on path inside the [`app/pages/` directory](/docs/4.x/directory-structure/app/pages).
60
60
 
61
61
  **`path`**
62
62
 
@@ -104,7 +104,7 @@ interface PageMeta {
104
104
 
105
105
  - **Type**: `MiddlewareKey` | [`NavigationGuard`](https://router.vuejs.org/api/interfaces/navigationguard) | `Array<MiddlewareKey | NavigationGuard>`
106
106
 
107
- Define anonymous or named middleware directly within `definePageMeta`. Learn more about [route middleware](/docs/4.x/guide/directory-structure/app/middleware).
107
+ Define anonymous or named middleware directly within `definePageMeta`. Learn more about [route middleware](/docs/4.x/directory-structure/app/middleware).
108
108
 
109
109
  **`pageTransition`**
110
110
 
@@ -142,7 +142,7 @@ interface PageMeta {
142
142
 
143
143
  - **Type**: `any`
144
144
 
145
- Apart from the above properties, you can also set **custom** metadata. You may wish to do so in a type-safe way by [augmenting the type of the `meta` object](/docs/4.x/guide/directory-structure/app/pages/#typing-custom-metadata).
145
+ Apart from the above properties, you can also set **custom** metadata. You may wish to do so in a type-safe way by [augmenting the type of the `meta` object](/docs/4.x/directory-structure/app/pages/#typing-custom-metadata).
146
146
 
147
147
  ## Examples
148
148
 
@@ -219,7 +219,7 @@ For more examples see [Vue Router's Matching Syntax](https://router.vuejs.org/gu
219
219
 
220
220
  ### Defining Layout
221
221
 
222
- You can define the layout that matches the layout's file name located (by default) in the [`app/layouts/` directory](/docs/4.x/guide/directory-structure/app/layouts). You can also disable the layout by setting the `layout` to `false`:
222
+ You can define the layout that matches the layout's file name located (by default) in the [`app/layouts/` directory](/docs/4.x/directory-structure/app/layouts). You can also disable the layout by setting the `layout` to `false`:
223
223
 
224
224
  ```vue [app/pages/some-page.vue]
225
225
  <script setup lang="ts">
@@ -68,7 +68,7 @@ export default defineNuxtRouteMiddleware((to, from) => {
68
68
 
69
69
  In this case, `navigateTo` will be executed but not returned, which may lead to unexpected behavior.
70
70
 
71
- :read-more{to="/docs/4.x/guide/directory-structure/app/middleware"}
71
+ :read-more{to="/docs/4.x/directory-structure/app/middleware"}
72
72
 
73
73
  ### Navigating to an External URL
74
74
 
@@ -9,7 +9,7 @@ links:
9
9
  ---
10
10
 
11
11
  ::note
12
- Updates the [`app.config`](/docs/4.x/guide/directory-structure/app/app-config) using deep assignment. Existing (nested) properties will be preserved.
12
+ Updates the [`app.config`](/docs/4.x/directory-structure/app/app-config) using deep assignment. Existing (nested) properties will be preserved.
13
13
  ::
14
14
 
15
15
  ## Usage
@@ -25,4 +25,4 @@ updateAppConfig(newAppConfig)
25
25
  console.log(appConfig) // { foo: 'baz' }
26
26
  ```
27
27
 
28
- :read-more{to="/docs/4.x/guide/directory-structure/app/app-config"}
28
+ :read-more{to="/docs/4.x/directory-structure/app/app-config"}
@@ -4,7 +4,7 @@ description: "Search and add modules to your Nuxt application with the command l
4
4
  links:
5
5
  - label: Source
6
6
  icon: i-simple-icons-github
7
- to: https://github.com/nuxt/cli/blob/main/packages/nuxi/src/commands/module/
7
+ to: https://github.com/nuxt/cli/tree/main/packages/nuxi/src/commands/module
8
8
  size: xs
9
9
  ---
10
10
 
@@ -39,8 +39,8 @@ The command lets you install [Nuxt modules](/modules) in your application with n
39
39
  When running the command, it will:
40
40
 
41
41
  - install the module as a dependency using your package manager
42
- - add it to your [package.json](/docs/4.x/guide/directory-structure/package) file
43
- - update your [`nuxt.config`](/docs/4.x/guide/directory-structure/nuxt-config) file
42
+ - add it to your [package.json](/docs/4.x/directory-structure/package) file
43
+ - update your [`nuxt.config`](/docs/4.x/directory-structure/nuxt-config) file
44
44
 
45
45
  **Example:**
46
46
 
@@ -14,7 +14,7 @@ npx nuxt prepare [ROOTDIR] [--dotenv] [--cwd=<directory>] [--logLevel=<silent|in
14
14
  ```
15
15
  <!--/prepare-cmd-->
16
16
 
17
- The `prepare` command creates a [`.nuxt`](/docs/4.x/guide/directory-structure/nuxt) directory in your application and generates types. This can be useful in a CI environment or as a `postinstall` command in your [`package.json`](/docs/4.x/guide/directory-structure/package).
17
+ The `prepare` command creates a [`.nuxt`](/docs/4.x/directory-structure/nuxt) directory in your application and generates types. This can be useful in a CI environment or as a `postinstall` command in your [`package.json`](/docs/4.x/directory-structure/package).
18
18
 
19
19
  ## Arguments
20
20
 
@@ -40,5 +40,5 @@ Option | Default | Description
40
40
  This command sets `process.env.NODE_ENV` to `production`. To override, define `NODE_ENV` in a `.env` file or as command-line argument.
41
41
 
42
42
  ::note
43
- For convenience, in preview mode, your [`.env`](/docs/4.x/guide/directory-structure/env) file will be loaded into `process.env`. (However, in production you will need to ensure your environment variables are set yourself. For example, with Node.js 20+ you could do this by running `node --env-file .env .output/server/index.mjs` to start your server.)
43
+ For convenience, in preview mode, your [`.env`](/docs/4.x/directory-structure/env) file will be loaded into `process.env`. (However, in production you will need to ensure your environment variables are set yourself. For example, with Node.js 20+ you could do this by running `node --env-file .env .output/server/index.mjs` to start your server.)
44
44
  ::
@@ -36,7 +36,7 @@ Option | Default | Description
36
36
  <!--/typecheck-opts-->
37
37
 
38
38
  ::note
39
- This command sets `process.env.NODE_ENV` to `production`. To override, define `NODE_ENV` in a [`.env`](/docs/4.x/guide/directory-structure/env) file or as a command-line argument.
39
+ This command sets `process.env.NODE_ENV` to `production`. To override, define `NODE_ENV` in a [`.env`](/docs/4.x/directory-structure/env) file or as a command-line argument.
40
40
  ::
41
41
 
42
42
  ::read-more{to="/docs/4.x/guide/concepts/typescript#type-checking"}
@@ -4,7 +4,7 @@ description: Nuxt Kit provides a set of utilities to help you create and use mod
4
4
  links:
5
5
  - label: Source
6
6
  icon: i-simple-icons-github
7
- to: https://github.com/nuxt/nuxt/blob/main/packages/kit/src/module
7
+ to: https://github.com/nuxt/nuxt/tree/main/packages/kit/src/module
8
8
  size: xs
9
9
  ---
10
10
 
@@ -4,7 +4,7 @@ description: Nuxt Kit provides a set of utilities to help you work with Nuxt pro
4
4
  links:
5
5
  - label: Source
6
6
  icon: i-simple-icons-github
7
- to: https://github.com/nuxt/nuxt/blob/main/packages/kit/src/loader
7
+ to: https://github.com/nuxt/nuxt/tree/main/packages/kit/src/loader
8
8
  size: xs
9
9
  ---
10
10
 
@@ -31,7 +31,7 @@ function loadNuxt (loadOptions?: LoadNuxtOptions): Promise<Nuxt>
31
31
 
32
32
  ## `buildNuxt`
33
33
 
34
- Build Nuxt programmatically. It will invoke the builder (currently [@nuxt/vite-builder](https://github.com/nuxt/nuxt/blob/main/packages/vite) or [@nuxt/webpack-builder](https://github.com/nuxt/nuxt/blob/main/packages/webpack)) to bundle the application.
34
+ Build Nuxt programmatically. It will invoke the builder (currently [@nuxt/vite-builder](https://github.com/nuxt/nuxt/tree/main/packages/vite) or [@nuxt/webpack-builder](https://github.com/nuxt/nuxt/tree/main/packages/webpack)) to bundle the application.
35
35
 
36
36
  ### Type
37
37
 
@@ -46,7 +46,7 @@ Hook | Arguments | Description
46
46
  `modules:done` | - | Called during Nuxt initialization, after installing user modules.
47
47
  `app:resolve` | `app` | Called after resolving the `app` instance.
48
48
  `app:templates` | `app` | Called during `NuxtApp` generation, to allow customizing, modifying or adding new files to the build directory (either virtually or to written to `.nuxt`).
49
- `app:templatesGenerated` | `app` | Called after templates are compiled into the [virtual file system](/docs/4.x/guide/directory-structure/nuxt) (vfs).
49
+ `app:templatesGenerated` | `app` | Called after templates are compiled into the [virtual file system](/docs/4.x/directory-structure/nuxt) (vfs).
50
50
  `build:before` | - | Called before Nuxt bundle builder.
51
51
  `build:done` | - | Called after Nuxt bundle builder is complete.
52
52
  `build:manifest` | `manifest` | Called during the manifest build by Vite and webpack. This allows customizing the manifest that Nitro will use to render `<script>` and `<link>` tags in the final HTML.
@@ -505,7 +505,7 @@ Any components in the directories configured here can be used throughout your pa
505
505
  }
506
506
  ```
507
507
 
508
- **See**: [`app/components/` directory documentation](https://nuxt.com/docs/4.x/guide/directory-structure/app/components)
508
+ **See**: [`app/components/` directory documentation](https://nuxt.com/docs/4.x/directory-structure/app/components)
509
509
 
510
510
  ## css
511
511
 
@@ -835,7 +835,7 @@ Any file in `app/pages/`, `app/layouts/`, `app/middleware/`, and `public/` direc
835
835
 
836
836
  Configure how Nuxt auto-imports composables into your application.
837
837
 
838
- **See**: [Nuxt documentation](https://nuxt.com/docs/4.x/guide/directory-structure/app/composables)
838
+ **See**: [Nuxt documentation](https://nuxt.com/docs/4.x/directory-structure/app/composables)
839
839
 
840
840
  ### `dirs`
841
841
 
@@ -1146,7 +1146,7 @@ and these plugins do not need to be listed in `nuxt.config` unless you
1146
1146
  need to customize their order. All plugins are deduplicated by their src path.
1147
1147
  ::
1148
1148
 
1149
- **See**: [`app/plugins/` directory documentation](https://nuxt.com/docs/4.x/guide/directory-structure/app/plugins)
1149
+ **See**: [`app/plugins/` directory documentation](https://nuxt.com/docs/4.x/directory-structure/app/plugins)
1150
1150
 
1151
1151
  **Example**:
1152
1152
  ```ts
@@ -1307,7 +1307,7 @@ Each handler accepts the following options:
1307
1307
 
1308
1308
  - **Type**: `array`
1309
1309
 
1310
- **See**: [`server/` directory documentation](https://nuxt.com/docs/4.x/guide/directory-structure/server)
1310
+ **See**: [`server/` directory documentation](https://nuxt.com/docs/4.x/directory-structure/server)
1311
1311
 
1312
1312
  ::callout
1313
1313
  **Note**: Files from `server/api`, `server/middleware` and `server/routes` will be automatically registered by Nuxt.
@@ -68,10 +68,10 @@ Each active version has its own nightly releases which are generated automatical
68
68
  Release | | Initial release | End Of Life | Docs
69
69
  -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | ---------------------------- | ---------------------------------------
70
70
  **5.x** (scheduled) | | Q4 2025 (estimated) | TBA | &nbsp;
71
- **4.x** (stable) | <a href="https://www.npmjs.com/package/nuxt?activeTab=versions"><img alt="Nuxt latest version" src="https://flat.badgen.net/npm/v/nuxt?label=" class="not-prose"></a> | 2025-07-16 | 6 months after 5.x release | [nuxt.com](/docs/4.x/getting-started/introduction)
72
- **3.x** (maintenance) | <a href="https://www.npmjs.com/package/nuxt?activeTab=versions"><img alt="Nuxt 3.x version" src="https://flat.badgen.net/npm/v/nuxt/3x?label=" class="not-prose"></a> | 2022-11-16 | 2026-01-31 | [nuxt.com](/docs/3.x/getting-started/introduction)
73
- **2.x** (unsupported) | <a href="https://www.npmjs.com/package/nuxt?activeTab=versions"><img alt="Nuxt 2.x version" src="https://flat.badgen.net/npm/v/nuxt/2x?label=" class="not-prose"></a> | 2018-09-21 | 2024-06-30 | [v2.nuxt.com](https://v2.nuxt.com/docs/get-started/installation/)
74
- **1.x** (unsupported) | <a href="https://www.npmjs.com/package/nuxt?activeTab=versions"><img alt="Nuxt 1.x version" src="https://flat.badgen.net/npm/v/nuxt/1x?label=" class="not-prose"></a> | 2018-01-08 | 2019-09-21 | &nbsp;
71
+ **4.x** (stable) | <a href="https://www.npmjs.com/package/nuxt?activeTab=versions"><img alt="Nuxt latest version" src="https://img.shields.io/npm/v/nuxt.svg?logo=nuxt&label=&style=flat&colorA=18181B&colorB=28CF8D" class="not-prose h-5 w-auto" :zoom="false"></a> | 2025-07-16 | 6 months after 5.x release | [nuxt.com](/docs/4.x/getting-started/introduction)
72
+ **3.x** (maintenance) | <a href="https://www.npmjs.com/package/nuxt?activeTab=versions"><img alt="Nuxt 3.x version" src="https://img.shields.io/npm/v/nuxt/3x.svg?logo=nuxt&label=&style=flat&colorA=18181B&colorB=28CF8D" class="not-prose h-5 w-auto" :zoom="false"></a> | 2022-11-16 | 2026-01-31 | [nuxt.com](/docs/3.x/getting-started/introduction)
73
+ **2.x** (unsupported) | <a href="https://www.npmjs.com/package/nuxt?activeTab=versions"><img alt="Nuxt 2.x version" src="https://img.shields.io/npm/v/nuxt/2x.svg?logo=nuxt&label=&style=flat&colorA=18181B&colorB=28CF8D" class="not-prose h-5 w-auto" :zoom="false"></a> | 2018-09-21 | 2024-06-30 | [v2.nuxt.com](https://v2.nuxt.com/docs/get-started/installation/)
74
+ **1.x** (unsupported) | <a href="https://www.npmjs.com/package/nuxt?activeTab=versions"><img alt="Nuxt 1.x version" src="https://img.shields.io/npm/v/nuxt/1x.svg?logo=nuxt&label=&style=flat&colorA=18181B&colorB=28CF8D" class="not-prose h-5 w-auto" :zoom="false"></a> | 2018-01-08 | 2019-09-21 | &nbsp;
75
75
 
76
76
  ### Support Status
77
77
 
@@ -80,7 +80,7 @@ bun add -D @nuxt/bridge nuxi
80
80
 
81
81
  Please make sure to avoid any CommonJS syntax such as `module.exports`, `require` or `require.resolve` in your config file. It will soon be deprecated and unsupported.
82
82
 
83
- You can use static `import`, dynamic `import()` and `export default` instead. Using TypeScript by renaming to [`nuxt.config.ts`](/docs/4.x/guide/directory-structure/nuxt-config) is also possible and recommended.
83
+ You can use static `import`, dynamic `import()` and `export default` instead. Using TypeScript by renaming to [`nuxt.config.ts`](/docs/4.x/directory-structure/nuxt-config) is also possible and recommended.
84
84
 
85
85
  ```ts [nuxt.config.ts]
86
86
  import { defineNuxtConfig } from '@nuxt/bridge'
@@ -37,7 +37,7 @@ If you are using TypeScript, you can edit your `tsconfig.json` to benefit from a
37
37
  ::note
38
38
  As `.nuxt/tsconfig.json` is generated and not checked into version control, you'll need to generate that file before running your tests. Add `nuxi prepare` as a step before your tests, otherwise you'll see `TS5083: Cannot read file '~/.nuxt/tsconfig.json'`
39
39
 
40
- For modern Nuxt projects, we recommend using [TypeScript project references](/docs/4.x/guide/directory-structure/tsconfig) instead of directly extending `.nuxt/tsconfig.json`.
40
+ For modern Nuxt projects, we recommend using [TypeScript project references](/docs/4.x/directory-structure/tsconfig) instead of directly extending `.nuxt/tsconfig.json`.
41
41
  ::
42
42
 
43
43
  ::note
@@ -113,7 +113,7 @@ export default <Plugin> function (ctx, inject) {}
113
113
  While this example is valid, Nuxt 3 introduces a new defineNuxtPlugin function that has a slightly different signature.
114
114
  ::
115
115
 
116
- :ReadMore{link="/docs/4.x/guide/directory-structure/app/plugins#creating-plugins"}
116
+ :ReadMore{link="/docs/4.x/directory-structure/app/plugins#creating-plugins"}
117
117
 
118
118
  ### `useRouter` and `useRoute`
119
119
 
@@ -7,7 +7,7 @@ description: 'Learn how to migrate from Nuxt 2 to Nuxt Bridge new plugins and mi
7
7
 
8
8
  You can now migrate to the Nuxt 3 plugins API, which is slightly different in format from Nuxt 2.
9
9
 
10
- Plugins now take only one argument (`nuxtApp`). You can find out more in [the docs](/docs/4.x/guide/directory-structure/app/plugins).
10
+ Plugins now take only one argument (`nuxtApp`). You can find out more in [the docs](/docs/4.x/directory-structure/app/plugins).
11
11
 
12
12
  ```ts [app/plugins/hello.ts]
13
13
  export default defineNuxtPlugin((nuxtApp) => {
@@ -28,7 +28,7 @@ Although a compatibility interface is provided via `nuxtApp.vueApp` you should a
28
28
 
29
29
  You can now migrate to the Nuxt 3 middleware API, which is slightly different in format from Nuxt 2.
30
30
 
31
- Middleware now take only two argument (`to`, `from`). You can find out more in [the docs](/docs/4.x/guide/directory-structure/app/middleware).
31
+ Middleware now take only two argument (`to`, `from`). You can find out more in [the docs](/docs/4.x/directory-structure/app/middleware).
32
32
 
33
33
  ```ts twoslash
34
34
  export default defineNuxtRouteMiddleware((to) => {
@@ -13,5 +13,5 @@ In a built Nuxt 3 application, there is no runtime Nuxt dependency. That means y
13
13
  2. Any files in `~/server/api` and `~/server/middleware` will be automatically registered; you can remove them from your `serverMiddleware` array.
14
14
  3. Update any other items in your `serverMiddleware` array to point to files or npm packages directly, rather than using inline functions.
15
15
 
16
- :read-more{to="/docs/4.x/guide/directory-structure/server"}
16
+ :read-more{to="/docs/4.x/directory-structure/server"}
17
17
  :read-more{to="/docs/4.x/guide/going-further/hooks#server-hooks-runtime"}
@@ -140,7 +140,7 @@ If you are a module author, you can check out [more information about module com
140
140
 
141
141
  The `static/` (for storing static assets) has been renamed to `public/`. You can either rename your `static` directory to `public`, or keep the name by setting `dir.public` in your `nuxt.config`.
142
142
 
143
- :read-more{to="/docs/4.x/guide/directory-structure/public"}
143
+ :read-more{to="/docs/4.x/directory-structure/public"}
144
144
 
145
145
  ## TypeScript
146
146
 
@@ -227,7 +227,7 @@ export const useMainStore = defineStore('main', {
227
227
  })
228
228
  ```
229
229
 
230
- Create a [plugin](/docs/4.x/guide/directory-structure/app/plugins) file to globalize your store:
230
+ Create a [plugin](/docs/4.x/directory-structure/app/plugins) file to globalize your store:
231
231
 
232
232
  ```ts [app/plugins/pinia.ts]
233
233
  import { useMainStore } from '~/store'
@@ -17,7 +17,7 @@ Explore Nuxt 3 compatible modules.
17
17
 
18
18
  Nuxt 3 plugins are **not** fully backward compatible with Nuxt 2.
19
19
 
20
- :read-more{to="/docs/4.x/guide/directory-structure/app/plugins"}
20
+ :read-more{to="/docs/4.x/directory-structure/app/plugins"}
21
21
 
22
22
  ### Vue Compatibility
23
23
 
@@ -11,7 +11,7 @@ In the rest of the migration documentation, you will notice that key Nuxt and Vu
11
11
 
12
12
  ## Migration
13
13
 
14
- 1. If you have been using `@nuxt/components` in Nuxt 2, you can remove `components: true` in your `nuxt.config`. If you had a more complex setup, then note that the component options have changed somewhat. See the [components documentation](/docs/4.x/guide/directory-structure/app/components) for more information.
14
+ 1. If you have been using `@nuxt/components` in Nuxt 2, you can remove `components: true` in your `nuxt.config`. If you had a more complex setup, then note that the component options have changed somewhat. See the [components documentation](/docs/4.x/directory-structure/app/components) for more information.
15
15
 
16
16
  ::tip
17
17
  You can look at `.nuxt/types/components.d.ts` and `.nuxt/types/imports.d.ts` to see how Nuxt has resolved your components and composable auto-imports.