@nuxt/docs 4.2.0 → 4.2.2
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.
- package/1.getting-started/01.introduction.md +1 -1
- package/1.getting-started/02.installation.md +3 -3
- package/1.getting-started/03.configuration.md +27 -27
- package/1.getting-started/04.views.md +5 -5
- package/1.getting-started/05.assets.md +8 -8
- package/1.getting-started/06.styling.md +15 -15
- package/1.getting-started/07.routing.md +10 -6
- package/1.getting-started/08.seo-meta.md +3 -3
- package/1.getting-started/09.transitions.md +10 -10
- package/1.getting-started/10.data-fetching.md +16 -16
- package/1.getting-started/11.state-management.md +3 -3
- package/1.getting-started/12.error-handling.md +6 -6
- package/1.getting-started/13.server.md +6 -6
- package/1.getting-started/14.layers.md +32 -13
- package/1.getting-started/16.deployment.md +1 -1
- package/1.getting-started/17.testing.md +35 -4
- package/1.getting-started/18.upgrade.md +42 -34
- package/{2.guide/1.directory-structure → 2.directory-structure}/0.nuxt.md +1 -1
- package/{2.guide/1.directory-structure → 2.directory-structure}/0.output.md +1 -1
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/1.assets.md +2 -2
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/1.components.md +6 -6
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/1.composables.md +2 -2
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/1.layouts.md +3 -3
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/1.middleware.md +5 -5
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/1.pages.md +17 -17
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/1.plugins.md +3 -7
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/1.utils.md +3 -3
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/3.app.md +4 -4
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/3.error.md +1 -3
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.content.md +2 -2
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.modules.md +1 -1
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.node_modules.md +2 -2
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.public.md +1 -1
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.server.md +7 -7
- package/{2.guide/1.directory-structure → 2.directory-structure}/1.shared.md +3 -3
- package/{2.guide/1.directory-structure → 2.directory-structure}/2.env.md +2 -2
- package/{2.guide/1.directory-structure → 2.directory-structure}/2.nuxtignore.md +1 -1
- package/{2.guide/1.directory-structure → 2.directory-structure}/2.nuxtrc.md +1 -1
- package/{2.guide/1.directory-structure → 2.directory-structure}/3.nuxt-config.md +1 -1
- package/{2.guide/1.directory-structure → 2.directory-structure}/3.package.md +1 -1
- package/2.directory-structure/3.tsconfig.md +69 -0
- package/2.directory-structure/index.md +61 -0
- package/{2.guide → 3.guide}/0.index.md +4 -7
- package/{2.guide/2.concepts/3.rendering.md → 3.guide/1.concepts/1.rendering.md} +4 -30
- package/{2.guide/2.concepts/2.vuejs-development.md → 3.guide/1.concepts/10.vuejs-development.md} +7 -6
- package/{2.guide/2.concepts/10.nuxt-lifecycle.md → 3.guide/1.concepts/2.nuxt-lifecycle.md} +32 -25
- package/{2.guide/2.concepts/1.auto-imports.md → 3.guide/1.concepts/3.auto-imports.md} +7 -7
- package/{2.guide/2.concepts → 3.guide/1.concepts}/4.server-engine.md +3 -3
- package/{2.guide/2.concepts → 3.guide/1.concepts}/5.modules.md +1 -1
- package/{2.guide/2.concepts → 3.guide/1.concepts}/7.esm.md +3 -2
- package/{2.guide/2.concepts → 3.guide/1.concepts}/8.typescript.md +15 -38
- package/{2.guide/2.concepts → 3.guide/1.concepts}/9.code-style.md +1 -1
- package/{2.guide/5.best-practices → 3.guide/2.best-practices}/hydration.md +1 -1
- package/{2.guide/5.best-practices → 3.guide/2.best-practices}/performance.md +2 -2
- package/3.guide/3.ai/.navigation.yml +3 -0
- package/3.guide/3.ai/1.mcp.md +255 -0
- package/3.guide/3.ai/2.llms-txt.md +65 -0
- package/{2.guide → 3.guide}/4.recipes/1.custom-routing.md +5 -5
- package/{2.guide → 3.guide}/4.recipes/2.vite-plugin.md +1 -1
- package/{2.guide → 3.guide}/4.recipes/3.custom-usefetch.md +1 -1
- package/{2.guide → 3.guide}/4.recipes/4.sessions-and-authentication.md +1 -1
- package/{2.guide/3.going-further → 3.guide/5.going-further}/1.events.md +2 -3
- package/{2.guide/3.going-further → 3.guide/5.going-further}/1.experimental-features.md +10 -10
- package/{2.guide/3.going-further → 3.guide/5.going-further}/1.features.md +1 -1
- package/{2.guide/3.going-further → 3.guide/5.going-further}/1.internals.md +3 -2
- package/{2.guide/3.going-further → 3.guide/5.going-further}/10.runtime-config.md +2 -2
- package/{2.guide/3.going-further → 3.guide/5.going-further}/2.hooks.md +2 -2
- package/{2.guide/3.going-further → 3.guide/5.going-further}/3.modules.md +78 -11
- package/{2.guide/3.going-further → 3.guide/5.going-further}/6.nuxt-app.md +5 -5
- package/{2.guide/3.going-further → 3.guide/5.going-further}/7.layers.md +42 -25
- package/{2.guide/3.going-further → 3.guide/5.going-further}/9.debugging.md +1 -1
- package/{3.api → 4.api}/1.components/10.nuxt-picture.md +1 -1
- package/{3.api → 4.api}/1.components/11.teleports.md +1 -1
- package/{3.api → 4.api}/1.components/12.nuxt-route-announcer.md +1 -3
- package/{3.api → 4.api}/1.components/13.nuxt-time.md +0 -2
- package/{3.api → 4.api}/1.components/2.nuxt-page.md +3 -3
- package/{3.api → 4.api}/1.components/3.nuxt-layout.md +5 -5
- package/{3.api → 4.api}/1.components/4.nuxt-link.md +11 -11
- package/{3.api → 4.api}/1.components/5.nuxt-loading-indicator.md +1 -1
- package/{3.api → 4.api}/1.components/6.nuxt-error-boundary.md +1 -1
- package/{3.api → 4.api}/1.components/7.nuxt-welcome.md +2 -2
- package/{3.api → 4.api}/2.composables/use-app-config.md +1 -1
- package/{3.api → 4.api}/2.composables/use-async-data.md +76 -13
- package/4.api/2.composables/use-cookie.md +183 -0
- package/{3.api → 4.api}/2.composables/use-fetch.md +33 -33
- package/{3.api → 4.api}/2.composables/use-head-safe.md +37 -20
- package/4.api/2.composables/use-head.md +169 -0
- package/{3.api → 4.api}/2.composables/use-hydration.md +24 -18
- package/4.api/2.composables/use-lazy-async-data.md +96 -0
- package/4.api/2.composables/use-lazy-fetch.md +111 -0
- package/{3.api → 4.api}/2.composables/use-nuxt-app.md +7 -7
- package/{3.api → 4.api}/2.composables/use-nuxt-data.md +1 -1
- package/{3.api → 4.api}/2.composables/use-request-fetch.md +1 -1
- package/{3.api → 4.api}/2.composables/use-response-header.md +1 -1
- package/{3.api → 4.api}/2.composables/use-route-announcer.md +0 -2
- package/{3.api → 4.api}/2.composables/use-route.md +2 -2
- package/4.api/2.composables/use-router.md +94 -0
- package/{3.api → 4.api}/2.composables/use-runtime-config.md +1 -1
- package/{3.api → 4.api}/2.composables/use-runtime-hook.md +1 -1
- package/{3.api → 4.api}/2.composables/use-state.md +1 -1
- package/{3.api → 4.api}/3.utils/$fetch.md +1 -1
- package/{3.api → 4.api}/3.utils/abort-navigation.md +3 -3
- package/{3.api → 4.api}/3.utils/add-route-middleware.md +1 -1
- package/{3.api → 4.api}/3.utils/call-once.md +0 -2
- package/{3.api → 4.api}/3.utils/define-lazy-hydration-component.md +4 -4
- package/{3.api → 4.api}/3.utils/define-nuxt-component.md +1 -1
- package/4.api/3.utils/define-nuxt-plugin.md +102 -0
- package/{3.api → 4.api}/3.utils/define-nuxt-route-middleware.md +2 -2
- package/{3.api → 4.api}/3.utils/define-page-meta.md +14 -14
- package/{3.api → 4.api}/3.utils/navigate-to.md +15 -15
- package/{3.api → 4.api}/3.utils/on-before-route-leave.md +1 -1
- package/{3.api → 4.api}/3.utils/on-before-route-update.md +1 -1
- package/{3.api → 4.api}/3.utils/refresh-cookie.md +1 -3
- package/{3.api → 4.api}/3.utils/update-app-config.md +2 -2
- package/{3.api → 4.api}/4.commands/add.md +10 -10
- package/4.api/4.commands/analyze.md +42 -0
- package/4.api/4.commands/build-module.md +42 -0
- package/4.api/4.commands/build.md +47 -0
- package/{3.api → 4.api}/4.commands/cleanup.md +6 -6
- package/4.api/4.commands/dev.md +60 -0
- package/{3.api → 4.api}/4.commands/devtools.md +7 -7
- package/4.api/4.commands/generate.md +42 -0
- package/4.api/4.commands/info.md +33 -0
- package/4.api/4.commands/init.md +50 -0
- package/4.api/4.commands/module.md +84 -0
- package/4.api/4.commands/prepare.md +41 -0
- package/4.api/4.commands/preview.md +44 -0
- package/4.api/4.commands/test.md +40 -0
- package/4.api/4.commands/typecheck.md +44 -0
- package/4.api/4.commands/upgrade.md +37 -0
- package/{3.api → 4.api}/5.kit/1.modules.md +18 -18
- package/{3.api → 4.api}/5.kit/10.templates.md +23 -23
- package/{3.api → 4.api}/5.kit/11.nitro.md +35 -35
- package/{3.api → 4.api}/5.kit/14.builder.md +21 -21
- package/{3.api → 4.api}/5.kit/16.layers.md +12 -12
- package/{3.api → 4.api}/5.kit/2.programmatic.md +2 -2
- package/{3.api → 4.api}/5.kit/4.autoimports.md +18 -18
- package/4.api/5.kit/5.components.md +146 -0
- package/4.api/6.advanced/1.hooks.md +105 -0
- package/{3.api → 4.api}/6.nuxt-config.md +29 -28
- package/5.community/3.reporting-bugs.md +1 -1
- package/5.community/4.contribution.md +1 -1
- package/5.community/5.framework-contribution.md +8 -8
- package/5.community/6.roadmap.md +25 -25
- package/5.community/7.changelog.md +10 -0
- package/6.bridge/1.overview.md +1 -1
- package/6.bridge/2.typescript.md +1 -1
- package/6.bridge/3.bridge-composition-api.md +1 -1
- package/6.bridge/4.plugins-and-middleware.md +2 -2
- package/7.migration/11.server.md +1 -1
- package/7.migration/2.configuration.md +3 -3
- package/7.migration/20.module-authors.md +1 -1
- package/7.migration/3.auto-imports.md +1 -1
- package/7.migration/5.plugins-and-middleware.md +2 -2
- package/7.migration/6.pages-and-layouts.md +6 -6
- package/README.md +1 -1
- package/package.json +1 -1
- package/2.guide/1.directory-structure/3.tsconfig.md +0 -38
- package/3.api/2.composables/use-cookie.md +0 -183
- package/3.api/2.composables/use-head.md +0 -69
- package/3.api/2.composables/use-lazy-async-data.md +0 -47
- package/3.api/2.composables/use-lazy-fetch.md +0 -55
- package/3.api/2.composables/use-router.md +0 -94
- package/3.api/3.utils/define-nuxt-plugin.md +0 -102
- package/3.api/4.commands/analyze.md +0 -42
- package/3.api/4.commands/build-module.md +0 -42
- package/3.api/4.commands/build.md +0 -47
- package/3.api/4.commands/dev.md +0 -60
- package/3.api/4.commands/generate.md +0 -42
- package/3.api/4.commands/info.md +0 -33
- package/3.api/4.commands/init.md +0 -50
- package/3.api/4.commands/module.md +0 -84
- package/3.api/4.commands/prepare.md +0 -41
- package/3.api/4.commands/preview.md +0 -44
- package/3.api/4.commands/test.md +0 -40
- package/3.api/4.commands/typecheck.md +0 -44
- package/3.api/4.commands/upgrade.md +0 -37
- package/3.api/5.kit/5.components.md +0 -146
- package/3.api/6.advanced/1.hooks.md +0 -105
- /package/{2.guide/1.directory-structure → 2.directory-structure}/.navigation.yml +0 -0
- /package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/.navigation.yml +0 -0
- /package/{2.guide/1.directory-structure → 2.directory-structure}/1.app/3.app-config.md +0 -0
- /package/{2.guide/1.directory-structure → 2.directory-structure}/2.gitignore.md +0 -0
- /package/{2.guide → 3.guide}/.navigation.yml +0 -0
- /package/{2.guide/2.concepts → 3.guide/1.concepts}/.navigation.yml +0 -0
- /package/{2.guide/5.best-practices → 3.guide/2.best-practices}/.navigation.yml +0 -0
- /package/{2.guide/5.best-practices → 3.guide/2.best-practices}/plugins.md +0 -0
- /package/{2.guide → 3.guide}/4.recipes/.navigation.yml +0 -0
- /package/{2.guide/3.going-further → 3.guide/5.going-further}/.navigation.yml +0 -0
- /package/{2.guide/3.going-further → 3.guide/5.going-further}/11.nightly-release-channel.md +0 -0
- /package/{2.guide/3.going-further → 3.guide/5.going-further}/4.kit.md +0 -0
- /package/{2.guide/3.going-further → 3.guide/5.going-further}/index.md +0 -0
- /package/{3.api → 4.api}/.navigation.yml +0 -0
- /package/{3.api → 4.api}/1.components/.navigation.yml +0 -0
- /package/{3.api → 4.api}/1.components/1.client-only.md +0 -0
- /package/{3.api → 4.api}/1.components/1.dev-only.md +0 -0
- /package/{3.api → 4.api}/1.components/1.nuxt-client-fallback.md +0 -0
- /package/{3.api → 4.api}/1.components/8.nuxt-island.md +0 -0
- /package/{3.api → 4.api}/1.components/9.nuxt-img.md +0 -0
- /package/{3.api → 4.api}/2.composables/.navigation.yml +0 -0
- /package/{3.api → 4.api}/2.composables/on-prehydrate.md +0 -0
- /package/{3.api → 4.api}/2.composables/use-error.md +0 -0
- /package/{3.api → 4.api}/2.composables/use-loading-indicator.md +0 -0
- /package/{3.api → 4.api}/2.composables/use-preview-mode.md +0 -0
- /package/{3.api → 4.api}/2.composables/use-request-event.md +0 -0
- /package/{3.api → 4.api}/2.composables/use-request-header.md +0 -0
- /package/{3.api → 4.api}/2.composables/use-request-headers.md +0 -0
- /package/{3.api → 4.api}/2.composables/use-request-url.md +0 -0
- /package/{3.api → 4.api}/2.composables/use-seo-meta.md +0 -0
- /package/{3.api → 4.api}/2.composables/use-server-seo-meta.md +0 -0
- /package/{3.api → 4.api}/3.utils/.navigation.yml +0 -0
- /package/{3.api → 4.api}/3.utils/clear-error.md +0 -0
- /package/{3.api → 4.api}/3.utils/clear-nuxt-data.md +0 -0
- /package/{3.api → 4.api}/3.utils/clear-nuxt-state.md +0 -0
- /package/{3.api → 4.api}/3.utils/create-error.md +0 -0
- /package/{3.api → 4.api}/3.utils/define-route-rules.md +0 -0
- /package/{3.api → 4.api}/3.utils/on-nuxt-ready.md +0 -0
- /package/{3.api → 4.api}/3.utils/prefetch-components.md +0 -0
- /package/{3.api → 4.api}/3.utils/preload-components.md +0 -0
- /package/{3.api → 4.api}/3.utils/preload-route-components.md +0 -0
- /package/{3.api → 4.api}/3.utils/prerender-routes.md +0 -0
- /package/{3.api → 4.api}/3.utils/refresh-nuxt-data.md +0 -0
- /package/{3.api → 4.api}/3.utils/reload-nuxt-app.md +0 -0
- /package/{3.api → 4.api}/3.utils/set-page-layout.md +0 -0
- /package/{3.api → 4.api}/3.utils/set-response-status.md +0 -0
- /package/{3.api → 4.api}/3.utils/show-error.md +0 -0
- /package/{3.api → 4.api}/4.commands/.navigation.yml +0 -0
- /package/{3.api → 4.api}/5.kit/.navigation.yml +0 -0
- /package/{3.api → 4.api}/5.kit/10.runtime-config.md +0 -0
- /package/{3.api → 4.api}/5.kit/12.resolving.md +0 -0
- /package/{3.api → 4.api}/5.kit/13.logging.md +0 -0
- /package/{3.api → 4.api}/5.kit/15.examples.md +0 -0
- /package/{3.api → 4.api}/5.kit/3.compatibility.md +0 -0
- /package/{3.api → 4.api}/5.kit/6.context.md +0 -0
- /package/{3.api → 4.api}/5.kit/7.pages.md +0 -0
- /package/{3.api → 4.api}/5.kit/8.layout.md +0 -0
- /package/{3.api → 4.api}/5.kit/9.head.md +0 -0
- /package/{3.api → 4.api}/5.kit/9.plugins.md +0 -0
- /package/{3.api → 4.api}/6.advanced/.navigation.yml +0 -0
- /package/{3.api → 4.api}/6.advanced/2.import-meta.md +0 -0
- /package/{3.api → 4.api}/index.md +0 -0
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Nuxt MCP Server
|
|
3
|
+
description: Use Nuxt documentation in your AI assistants with Model Context Protocol support.
|
|
4
|
+
navigation.title: MCP Server
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## What is MCP?
|
|
8
|
+
|
|
9
|
+
MCP (Model Context Protocol) is a standardized protocol that enables AI assistants to access external data sources and tools. Nuxt provides an MCP server that allows AI assistants like Claude Code, Cursor, and Windsurf to access documentation, blog posts, and deployment guides directly.
|
|
10
|
+
|
|
11
|
+
The MCP server provides structured access to the Nuxt documentation, making it easy for AI tools to understand and assist with Nuxt development.
|
|
12
|
+
|
|
13
|
+
## Resources
|
|
14
|
+
|
|
15
|
+
The Nuxt MCP server provides the following resources for discovery:
|
|
16
|
+
|
|
17
|
+
- **`resource://nuxt-com/documentation-pages`**: Browse all available documentation pages (defaults to v4.x)
|
|
18
|
+
- **`resource://nuxt-com/blog-posts`**: Browse all Nuxt blog posts including releases and tutorials
|
|
19
|
+
- **`resource://nuxt-com/deploy-providers`**: Browse all deployment providers and hosting platforms
|
|
20
|
+
|
|
21
|
+
You're able to access these resources with tools like Claude Code by using `@`.
|
|
22
|
+
|
|
23
|
+
## Tools
|
|
24
|
+
|
|
25
|
+
The Nuxt MCP server provides the following tools organized by category:
|
|
26
|
+
|
|
27
|
+
### Documentation
|
|
28
|
+
|
|
29
|
+
- **`list_documentation_pages`**: Lists all available Nuxt documentation pages with their categories and basic information. Supports version filtering (3.x, 4.x, or all)
|
|
30
|
+
- **`get_documentation_page`**: Retrieves documentation page content and details by path
|
|
31
|
+
- **`get_getting_started_guide`**: Gets the getting started guide for a specific Nuxt version
|
|
32
|
+
|
|
33
|
+
### Blog
|
|
34
|
+
|
|
35
|
+
- **`list_blog_posts`**: Lists all Nuxt blog posts with metadata including dates, categories, and tags
|
|
36
|
+
- **`get_blog_post`**: Retrieves blog post content and details by path
|
|
37
|
+
|
|
38
|
+
### Deployment
|
|
39
|
+
|
|
40
|
+
- **`list_deploy_providers`**: Lists all deployment providers and hosting platforms for Nuxt applications
|
|
41
|
+
- **`get_deploy_provider`**: Retrieves deployment provider details and instructions by path
|
|
42
|
+
|
|
43
|
+
## Prompts
|
|
44
|
+
|
|
45
|
+
The Nuxt MCP server provides guided prompts for common workflows:
|
|
46
|
+
|
|
47
|
+
- **`find_documentation_for_topic`**: Find the best Nuxt documentation for a specific topic or feature
|
|
48
|
+
- **`deployment_guide`**: Get deployment instructions for a specific hosting provider
|
|
49
|
+
- **`migration_help`**: Get help with migrating between Nuxt versions
|
|
50
|
+
|
|
51
|
+
You're able to access these resources with tools like Claude Code by using `/`.
|
|
52
|
+
|
|
53
|
+
## Setup
|
|
54
|
+
|
|
55
|
+
The Nuxt MCP server uses HTTP transport and can be installed in different AI assistants.
|
|
56
|
+
|
|
57
|
+
### ChatGPT
|
|
58
|
+
|
|
59
|
+
::note{icon="i-lucide-info"}
|
|
60
|
+
**Custom connectors using MCP are available on ChatGPT for Pro and Plus accounts** on the web.
|
|
61
|
+
::
|
|
62
|
+
|
|
63
|
+
Follow these steps to set up Nuxt as a connector within ChatGPT:
|
|
64
|
+
|
|
65
|
+
1. **Enable Developer mode:**
|
|
66
|
+
- Go to Settings → Connectors → Advanced settings → Developer mode
|
|
67
|
+
|
|
68
|
+
2. **Open ChatGPT settings**
|
|
69
|
+
|
|
70
|
+
3. **In the Connectors tab, Create a new connector:**
|
|
71
|
+
- Give it a name: `Nuxt`
|
|
72
|
+
- MCP server URL: `https://nuxt.com/mcp`
|
|
73
|
+
- Authentication: `None`
|
|
74
|
+
|
|
75
|
+
4. **Click Create**
|
|
76
|
+
|
|
77
|
+
The Nuxt connector will appear in the composer's "Developer mode" tool later during conversations.
|
|
78
|
+
|
|
79
|
+
### Claude Code
|
|
80
|
+
|
|
81
|
+
::note{icon="i-lucide-info"}
|
|
82
|
+
**Ensure Claude Code is installed** - Visit [Anthropic's documentation](https://docs.claude.com/en/docs/claude-code/quickstart) for installation instructions.
|
|
83
|
+
::
|
|
84
|
+
|
|
85
|
+
Add the server using the CLI command:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
claude mcp add --transport http nuxt-remote https://nuxt.com/mcp
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Cursor
|
|
92
|
+
|
|
93
|
+
Click the button below to install the Nuxt MCP server directly in Cursor:
|
|
94
|
+
|
|
95
|
+
::u-button
|
|
96
|
+
---
|
|
97
|
+
to: "cursor://anysphere.cursor-deeplink/mcp/install?name=nuxt&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbnV4dC5jb20vbWNwIn0%3D"
|
|
98
|
+
label: Install MCP Server
|
|
99
|
+
color: neutral
|
|
100
|
+
icon: i-custom-cursor
|
|
101
|
+
---
|
|
102
|
+
::
|
|
103
|
+
|
|
104
|
+
For manual setup, follow these steps:
|
|
105
|
+
|
|
106
|
+
1. Open Cursor and go to "Settings" > "Tools & MCP"
|
|
107
|
+
2. Add the Nuxt MCP server configuration
|
|
108
|
+
|
|
109
|
+
Or manually create/update `.cursor/mcp.json` in your project root:
|
|
110
|
+
|
|
111
|
+
```json [.cursor/mcp.json]
|
|
112
|
+
{
|
|
113
|
+
"mcpServers": {
|
|
114
|
+
"nuxt": {
|
|
115
|
+
"type": "http",
|
|
116
|
+
"url": "https://nuxt.com/mcp"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Le Chat Mistral
|
|
123
|
+
|
|
124
|
+
1. Navigate to "Intelligence" > "Connectors"
|
|
125
|
+
2. Click on "Add Connector" button, then select "Custom MCP Connector"
|
|
126
|
+
3. Create your Custom MCP Connector:
|
|
127
|
+
- Connector Name : `Nuxt`
|
|
128
|
+
- Connector Server : `https://nuxt.com/mcp`
|
|
129
|
+
|
|
130
|
+
### Visual Studio Code
|
|
131
|
+
|
|
132
|
+
::note{icon="i-lucide-info"}
|
|
133
|
+
**Install required extensions** - Ensure you have [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) and [GitHub Copilot Chat](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat) extensions installed.
|
|
134
|
+
::
|
|
135
|
+
|
|
136
|
+
1. Open VS Code and access the Command Palette (Ctrl/Cmd + Shift + P)
|
|
137
|
+
2. Type "Preferences: Open Workspace Settings (JSON)" and select it
|
|
138
|
+
3. Navigate to your project's `.vscode` folder or create one if it doesn't exist
|
|
139
|
+
4. Create or edit the `mcp.json` file with the following configuration:
|
|
140
|
+
|
|
141
|
+
```json [.vscode/mcp.json]
|
|
142
|
+
{
|
|
143
|
+
"servers": {
|
|
144
|
+
"nuxt": {
|
|
145
|
+
"type": "http",
|
|
146
|
+
"url": "https://nuxt.com/mcp"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### GitHub Copilot Agent
|
|
153
|
+
|
|
154
|
+
::note{icon="i-lucide-info"}
|
|
155
|
+
**Repository administrator access required** to configure MCP servers for GitHub Copilot coding agent.
|
|
156
|
+
::
|
|
157
|
+
|
|
158
|
+
If you have already configured MCP servers in VS Code (replace the `servers` key with `mcpServers` for GitHub Copilot Agent), you can leverage a similar configuration for GitHub Copilot coding agent. You will need to add a `tools` key specifying which tools are available to Copilot.
|
|
159
|
+
|
|
160
|
+
1. Navigate to your GitHub repository
|
|
161
|
+
2. Go to **Settings** > **Code & automation** > **Copilot** > **Coding agent**
|
|
162
|
+
3. In the **MCP configuration** section, add the following configuration:
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"mcpServers": {
|
|
166
|
+
"nuxt": {
|
|
167
|
+
"type": "http",
|
|
168
|
+
"url": "https://nuxt.com/mcp",
|
|
169
|
+
"tools": ["*"]
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
4. Click **Save**
|
|
175
|
+
|
|
176
|
+
#### Validating the Configuration
|
|
177
|
+
|
|
178
|
+
To verify the MCP server is configured correctly:
|
|
179
|
+
|
|
180
|
+
1. Create an issue in your repository and assign it to Copilot
|
|
181
|
+
2. Wait for Copilot to create a pull request
|
|
182
|
+
3. In the pull request, click **View session** in the "Copilot started work" timeline event
|
|
183
|
+
4. Click the ellipsis button (**...**) at the top right, then click **Copilot** in the sidebar
|
|
184
|
+
5. Expand the **Start MCP Servers** step to see the configured Nuxt tools
|
|
185
|
+
|
|
186
|
+
For more information on using MCP with GitHub Copilot coding agent, see [Extend coding agent with MCP](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp).
|
|
187
|
+
|
|
188
|
+
### Windsurf
|
|
189
|
+
|
|
190
|
+
1. Open Windsurf and navigate to "Settings" > "Windsurf Settings" > "Cascade"
|
|
191
|
+
2. Click the "Manage MCPs" button, then select the "View raw config" option
|
|
192
|
+
3. Add the following configuration to your MCP settings:
|
|
193
|
+
|
|
194
|
+
```json [.codeium/windsurf/mcp_config.json]
|
|
195
|
+
{
|
|
196
|
+
"mcpServers": {
|
|
197
|
+
"nuxt": {
|
|
198
|
+
"type": "http",
|
|
199
|
+
"url": "https://nuxt.com/mcp"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Zed
|
|
206
|
+
|
|
207
|
+
1. Open Zed and go to "Settings" > "Open Settings"
|
|
208
|
+
2. Navigate to the JSON settings file
|
|
209
|
+
3. Add the following context server configuration to your settings:
|
|
210
|
+
|
|
211
|
+
```json [.config/zed/settings.json]
|
|
212
|
+
{
|
|
213
|
+
"context_servers": {
|
|
214
|
+
"nuxt": {
|
|
215
|
+
"source": "custom",
|
|
216
|
+
"command": "npx",
|
|
217
|
+
"args": ["mcp-remote", "https://nuxt.com/mcp"],
|
|
218
|
+
"env": {}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Opencode
|
|
225
|
+
|
|
226
|
+
1. In your project root, create `opencode.json`
|
|
227
|
+
2. Add the following configuration:
|
|
228
|
+
|
|
229
|
+
```json
|
|
230
|
+
{
|
|
231
|
+
"$schema": "https://opencode.ai/config.json",
|
|
232
|
+
"mcp": {
|
|
233
|
+
"nuxt": {
|
|
234
|
+
"type": "remote",
|
|
235
|
+
"url": "https://nuxt.com/mcp",
|
|
236
|
+
"enabled": true
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Prompts Examples
|
|
243
|
+
|
|
244
|
+
Once configured, you can ask your AI assistant questions like:
|
|
245
|
+
|
|
246
|
+
- "List all available Nuxt documentation pages"
|
|
247
|
+
- "Get the introduction documentation"
|
|
248
|
+
- "What's the difference between v3 and v4?"
|
|
249
|
+
- "How do I deploy to Vercel?"
|
|
250
|
+
- "Show me the latest blog posts"
|
|
251
|
+
- "Help me migrate from Nuxt 3 to Nuxt 4"
|
|
252
|
+
- "Search documentation about composables"
|
|
253
|
+
- "Find deployment guides for Cloudflare"
|
|
254
|
+
|
|
255
|
+
The AI assistant will use the MCP server to fetch structured JSON data and provide guided assistance for Nuxt development.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Nuxt LLMs.txt
|
|
3
|
+
description: How to get AI tools like Cursor, Windsurf, GitHub Copilot, ChatGPT, and Claude to understand Nuxt concepts, APIs, and best practices.
|
|
4
|
+
navigation.title: LLMs.txt
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## What is LLMs.txt?
|
|
8
|
+
|
|
9
|
+
LLMs.txt is a structured documentation format specifically designed for large language models (LLMs). Nuxt provides LLMs.txt files that contain comprehensive information about the framework, making it easy for AI tools to understand and assist with Nuxt development.
|
|
10
|
+
|
|
11
|
+
These files are optimized for AI consumption and contain structured information about concepts, APIs, usage patterns, and best practices.
|
|
12
|
+
|
|
13
|
+
## Available routes
|
|
14
|
+
|
|
15
|
+
We provide LLMs.txt routes to help AI tools access our documentation:
|
|
16
|
+
|
|
17
|
+
- **`/llms.txt`** - Contains a structured overview of all documentation pages and their links (~5K tokens)
|
|
18
|
+
- **`/llms-full.txt`** - Provides comprehensive documentation including getting started guides, API references, blog posts, and deployment guides (~1M+ tokens)
|
|
19
|
+
|
|
20
|
+
## Choosing the Right File
|
|
21
|
+
|
|
22
|
+
::note{icon="i-lucide-info"}
|
|
23
|
+
**Most users should start with `/llms.txt`** - it contains all essential information and works with standard LLM context windows.
|
|
24
|
+
|
|
25
|
+
Use `/llms-full.txt` only if you need comprehensive implementation details and your AI tool supports large contexts (200K+ tokens).
|
|
26
|
+
::
|
|
27
|
+
|
|
28
|
+
## Important usage notes
|
|
29
|
+
|
|
30
|
+
::warning{icon="i-lucide-alert-triangle"}
|
|
31
|
+
**@-symbol must be typed manually** - When using tools like Cursor or Windsurf, the `@` symbol must be typed by hand in the chat interface. Copy-pasting breaks the tool's ability to recognize it as a context reference.
|
|
32
|
+
::
|
|
33
|
+
|
|
34
|
+
## Usage with AI Tools
|
|
35
|
+
|
|
36
|
+
### Cursor
|
|
37
|
+
|
|
38
|
+
Nuxt provides specialized LLMs.txt files that you can reference in Cursor for better AI assistance with Nuxt development.
|
|
39
|
+
|
|
40
|
+
#### How to use
|
|
41
|
+
|
|
42
|
+
1. **Direct reference**: Mention the LLMs.txt URLs when asking questions
|
|
43
|
+
2. Add these specific URLs to your project context using `@docs`
|
|
44
|
+
|
|
45
|
+
[Read more about Cursor Web and Docs Search](https://cursor.com/docs/context/symbols)
|
|
46
|
+
|
|
47
|
+
### Windsurf
|
|
48
|
+
|
|
49
|
+
Windsurf can directly access the Nuxt LLMs.txt files to understand framework usage and best practices.
|
|
50
|
+
|
|
51
|
+
#### Using LLMs.txt with Windsurf
|
|
52
|
+
|
|
53
|
+
- Use `@docs` to reference specific LLMs.txt URLs
|
|
54
|
+
- Create persistent rules referencing these URLs in your workspace
|
|
55
|
+
|
|
56
|
+
[Read more about Windsurf Web and Docs Search](https://docs.windsurf.com/windsurf/cascade/web-search)
|
|
57
|
+
|
|
58
|
+
### Other AI Tools
|
|
59
|
+
|
|
60
|
+
Any AI tool that supports LLMs.txt can use these routes to better understand Nuxt.
|
|
61
|
+
|
|
62
|
+
#### Examples for ChatGPT, Claude, or other LLMs
|
|
63
|
+
|
|
64
|
+
- "Using Nuxt documentation from https://nuxt.com/llms.txt"
|
|
65
|
+
- "Follow complete Nuxt guidelines from https://nuxt.com/llms-full.txt"
|
|
@@ -5,7 +5,7 @@ description: "In Nuxt, your routing is defined by the structure of your files in
|
|
|
5
5
|
|
|
6
6
|
## Adding custom routes
|
|
7
7
|
|
|
8
|
-
In Nuxt, your routing is defined by the structure of your files inside the [app/pages directory](/docs/4.x/
|
|
8
|
+
In Nuxt, your routing is defined by the structure of your files inside the [app/pages directory](/docs/4.x/directory-structure/app/pages). However, since it uses [vue-router](https://router.vuejs.org) under the hood, Nuxt offers you several ways to add custom routes in your project.
|
|
9
9
|
|
|
10
10
|
### Router Config
|
|
11
11
|
|
|
@@ -17,7 +17,7 @@ If it returns `null` or `undefined`, Nuxt will fall back to the default routes (
|
|
|
17
17
|
import type { RouterConfig } from '@nuxt/schema'
|
|
18
18
|
|
|
19
19
|
export default {
|
|
20
|
-
// https://router.vuejs.org/api/interfaces/routeroptions
|
|
20
|
+
// https://router.vuejs.org/api/interfaces/routeroptions#routes
|
|
21
21
|
routes: _routes => [
|
|
22
22
|
{
|
|
23
23
|
name: 'home',
|
|
@@ -81,13 +81,13 @@ The [Nuxt kit](/docs/4.x/guide/going-further/kit) provides a few ways [to add ro
|
|
|
81
81
|
|
|
82
82
|
## Router Options
|
|
83
83
|
|
|
84
|
-
On top of customizing options for [`vue-router`](https://router.vuejs.org/api/interfaces/routeroptions
|
|
84
|
+
On top of customizing options for [`vue-router`](https://router.vuejs.org/api/interfaces/routeroptions), Nuxt offers [additional options](/docs/4.x/api/nuxt-config#router) to customize the router.
|
|
85
85
|
|
|
86
86
|
### Using `router.options`
|
|
87
87
|
|
|
88
88
|
This is the recommended way to specify [router options](/docs/4.x/api/nuxt-config#router).
|
|
89
89
|
|
|
90
|
-
```ts [router.options.ts]
|
|
90
|
+
```ts [app/router.options.ts]
|
|
91
91
|
import type { RouterConfig } from '@nuxt/schema'
|
|
92
92
|
|
|
93
93
|
export default {
|
|
@@ -175,7 +175,7 @@ import type { RouterConfig } from '@nuxt/schema'
|
|
|
175
175
|
import { createMemoryHistory } from 'vue-router'
|
|
176
176
|
|
|
177
177
|
export default {
|
|
178
|
-
// https://router.vuejs.org/api/interfaces/routeroptions
|
|
178
|
+
// https://router.vuejs.org/api/interfaces/routeroptions
|
|
179
179
|
history: base => import.meta.client ? createMemoryHistory(base) : null, /* default */
|
|
180
180
|
} satisfies RouterConfig
|
|
181
181
|
```
|
|
@@ -28,7 +28,7 @@ First, we need to install the Vite plugin, for our example, we'll use `@rollup/p
|
|
|
28
28
|
|
|
29
29
|
::
|
|
30
30
|
|
|
31
|
-
Next, we need to import and add it to our [`nuxt.config.ts`](/docs/4.x/
|
|
31
|
+
Next, we need to import and add it to our [`nuxt.config.ts`](/docs/4.x/directory-structure/nuxt-config) file:
|
|
32
32
|
|
|
33
33
|
```ts [nuxt.config.ts]
|
|
34
34
|
import yaml from '@rollup/plugin-yaml'
|
|
@@ -12,7 +12,7 @@ However, Nuxt provides a way to create a custom fetcher for your API (or multipl
|
|
|
12
12
|
|
|
13
13
|
## Custom `$fetch`
|
|
14
14
|
|
|
15
|
-
Let's create a custom `$fetch` instance with a [Nuxt plugin](/docs/4.x/
|
|
15
|
+
Let's create a custom `$fetch` instance with a [Nuxt plugin](/docs/4.x/directory-structure/app/plugins).
|
|
16
16
|
|
|
17
17
|
::note
|
|
18
18
|
`$fetch` is a configured instance of [ofetch](https://github.com/unjs/ofetch) which supports adding the base URL of your Nuxt server as well as direct function calls during SSR (avoiding HTTP roundtrips).
|
|
@@ -155,7 +155,7 @@ export default defineEventHandler(async (event) => {
|
|
|
155
155
|
|
|
156
156
|
## Protect App Routes
|
|
157
157
|
|
|
158
|
-
Our data is safe with the server-side route in place, but without doing anything else, unauthenticated users would probably get some odd data when trying to access the `/users` page. We should create a [client-side middleware](https://nuxt.com/docs/4.x/
|
|
158
|
+
Our data is safe with the server-side route in place, but without doing anything else, unauthenticated users would probably get some odd data when trying to access the `/users` page. We should create a [client-side middleware](https://nuxt.com/docs/4.x/directory-structure/app/middleware) to protect the route on the client side and redirect users to the login page.
|
|
159
159
|
|
|
160
160
|
`nuxt-auth-utils` provides a convenient `useUserSession` composable which we'll use to check if the user is logged in, and redirect them if they are not.
|
|
161
161
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Events"
|
|
2
|
+
title: "Creating Custom Events"
|
|
3
3
|
description: "Nuxt provides a powerful event system powered by hookable."
|
|
4
|
+
navigation.title: "Custom Events"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
# Events
|
|
7
|
-
|
|
8
7
|
Using events is a great way to decouple your application and allow for more flexible and modular communication between different parts of your code. Events can have multiple listeners that do not depend on each other. For example, you may wish to send an email to your user each time an order has shipped. Instead of coupling your order processing code to your email code, you can emit an event which a listener can receive and use to dispatch an email.
|
|
9
8
|
|
|
10
9
|
The Nuxt event system is powered by [unjs/hookable](https://github.com/unjs/hookable), which is the same library that powers the Nuxt hooks system.
|
|
@@ -5,7 +5,7 @@ description: "Enable Nuxt experimental features to unlock new possibilities."
|
|
|
5
5
|
|
|
6
6
|
Nuxt includes experimental features that you can enable in your configuration file.
|
|
7
7
|
|
|
8
|
-
Internally, Nuxt uses `@nuxt/schema` to define these experimental features. You can refer to the [API documentation](/docs/4.x/
|
|
8
|
+
Internally, Nuxt uses `@nuxt/schema` to define these experimental features. You can refer to the [API documentation](/docs/4.x/guide/going-further/experimental-features) or the [source code](https://github.com/nuxt/nuxt/blob/main/packages/schema/src/config/experimental.ts) for more information.
|
|
9
9
|
|
|
10
10
|
::note
|
|
11
11
|
Note that these features are experimental and could be removed or modified in the future.
|
|
@@ -131,7 +131,7 @@ Emits `app:chunkError` hook when there is an error loading vite/webpack chunks.
|
|
|
131
131
|
|
|
132
132
|
By default, Nuxt will also perform a reload of the new route when a chunk fails to load when navigating to a new route (`automatic`).
|
|
133
133
|
|
|
134
|
-
Setting `automatic-immediate` will lead Nuxt to perform a reload of the current route right when a chunk fails to load (instead of waiting for navigation). This is useful for chunk errors that are not triggered by navigation, e.g., when your Nuxt app fails to load a [lazy component](/docs/4.x/
|
|
134
|
+
Setting `automatic-immediate` will lead Nuxt to perform a reload of the current route right when a chunk fails to load (instead of waiting for navigation). This is useful for chunk errors that are not triggered by navigation, e.g., when your Nuxt app fails to load a [lazy component](/docs/4.x/directory-structure/app/components#dynamic-imports). A potential downside of this behavior is undesired reloads, e.g., when your app does not need the chunk that caused the error.
|
|
135
135
|
|
|
136
136
|
You can disable automatic handling by setting this to `false`, or handle chunk errors manually by setting it to `manual`.
|
|
137
137
|
|
|
@@ -290,7 +290,7 @@ export default defineNuxtConfig({
|
|
|
290
290
|
|
|
291
291
|
:link-example{to="https://stackblitz.com/edit/nuxt-view-transitions?file=app.vue" target="_blank"}
|
|
292
292
|
|
|
293
|
-
::read-more{icon="i-simple-icons-mdnwebdocs" to="https://developer.mozilla.org/en-US/docs/Web/API/
|
|
293
|
+
::read-more{icon="i-simple-icons-mdnwebdocs" to="https://developer.mozilla.org/en-US/docs/Web/API/View_Transition_API" target="_blank"}
|
|
294
294
|
Read more about the **View Transition API**.
|
|
295
295
|
::
|
|
296
296
|
|
|
@@ -318,7 +318,7 @@ export default defineNuxtConfig({
|
|
|
318
318
|
})
|
|
319
319
|
```
|
|
320
320
|
|
|
321
|
-
:read-more{to="/docs/4.x/
|
|
321
|
+
:read-more{to="/docs/4.x/directory-structure/app/components#server-components"}
|
|
322
322
|
|
|
323
323
|
::read-more{icon="i-simple-icons-github" to="https://github.com/nuxt/nuxt/issues/19772" target="_blank"}
|
|
324
324
|
You can follow the server components roadmap on GitHub.
|
|
@@ -405,12 +405,12 @@ should do this automatically for you.)
|
|
|
405
405
|
// This would be unsafe in a dynamic page (e.g. `[slug].vue`) because the route slug makes a difference
|
|
406
406
|
// to the data fetched, but Nuxt can't know that because it's not reflected in the key.
|
|
407
407
|
const route = useRoute()
|
|
408
|
-
const { data } = await useAsyncData(async () => {
|
|
409
|
-
return await $fetch(`/api/my-page/${route.params.slug}
|
|
408
|
+
const { data } = await useAsyncData(async (_nuxtApp, { signal }) => {
|
|
409
|
+
return await $fetch(`/api/my-page/${route.params.slug}`, { signal })
|
|
410
410
|
})
|
|
411
411
|
// Instead, you should use a key that uniquely identifies the data fetched.
|
|
412
|
-
const { data } = await useAsyncData(route.params.slug, async () => {
|
|
413
|
-
return await $fetch(`/api/my-page/${route.params.slug}
|
|
412
|
+
const { data } = await useAsyncData(route.params.slug, async (_nuxtApp, { signal }) => {
|
|
413
|
+
return await $fetch(`/api/my-page/${route.params.slug}`, { signal })
|
|
414
414
|
})
|
|
415
415
|
```
|
|
416
416
|
|
|
@@ -541,7 +541,7 @@ export default defineNuxtConfig({
|
|
|
541
541
|
})
|
|
542
542
|
```
|
|
543
543
|
|
|
544
|
-
This allows modules to access additional metadata from the page metadata in the build context. If you are using this within a module, it's recommended also to [augment the `NuxtPage` types with your keys](/docs/4.x/
|
|
544
|
+
This allows modules to access additional metadata from the page metadata in the build context. If you are using this within a module, it's recommended also to [augment the `NuxtPage` types with your keys](/docs/4.x/directory-structure/app/pages#typing-custom-metadata).
|
|
545
545
|
|
|
546
546
|
## navigationRepaint
|
|
547
547
|
|
|
@@ -665,7 +665,7 @@ export default defineNuxtConfig({
|
|
|
665
665
|
})
|
|
666
666
|
```
|
|
667
667
|
|
|
668
|
-
::read-more{icon="i-simple-icons-github" color="gray" to="/docs/4.x/
|
|
668
|
+
::read-more{icon="i-simple-icons-github" color="gray" to="/docs/4.x/directory-structure/app/components#delayed-or-lazy-hydration"}
|
|
669
669
|
Read more about lazy hydration.
|
|
670
670
|
::
|
|
671
671
|
|
|
@@ -91,7 +91,7 @@ export default defineNuxtConfig({
|
|
|
91
91
|
|
|
92
92
|
### typescriptBundlerResolution
|
|
93
93
|
|
|
94
|
-
This enables 'Bundler' module resolution mode for TypeScript, which is the recommended setting for frameworks like Nuxt and [Vite](https://vite.dev/guide/performance
|
|
94
|
+
This enables 'Bundler' module resolution mode for TypeScript, which is the recommended setting for frameworks like Nuxt and [Vite](https://vite.dev/guide/performance#reduce-resolve-operations).
|
|
95
95
|
|
|
96
96
|
It improves type support when using modern libraries with `exports`.
|
|
97
97
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "How Nuxt Works?"
|
|
3
3
|
description: "Nuxt is a minimal but highly customizable framework to build web applications."
|
|
4
|
+
navigation: false
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
This guide helps you better understand Nuxt internals to develop new solutions and module integrations on top of Nuxt.
|
|
@@ -30,7 +31,7 @@ Global usage is possible for the browser but not on the server, to avoid sharing
|
|
|
30
31
|
|
|
31
32
|
Since [`useNuxtApp`](/docs/4.x/api/composables/use-nuxt-app) throws an exception if context is currently unavailable, if your composable does not always require `nuxtApp`, you can use [`tryUseNuxtApp`](/docs/4.x/api/composables/use-nuxt-app#tryusenuxtapp) instead, which will return `null` instead of throwing an exception.
|
|
32
33
|
|
|
33
|
-
To extend the `nuxtApp` interface and hook into different stages or access contexts, we can use [Nuxt Plugins](/docs/4.x/
|
|
34
|
+
To extend the `nuxtApp` interface and hook into different stages or access contexts, we can use [Nuxt Plugins](/docs/4.x/directory-structure/app/plugins).
|
|
34
35
|
|
|
35
36
|
Check [Nuxt App](/docs/4.x/api/composables/use-nuxt-app) for more information about this interface.
|
|
36
37
|
|
|
@@ -76,6 +77,6 @@ Nuxt builds and bundles project using Node.js but also has a runtime side.
|
|
|
76
77
|
|
|
77
78
|
While both areas can be extended, that runtime context is isolated from build-time. Therefore, they are not supposed to share state, code, or context other than runtime configuration!
|
|
78
79
|
|
|
79
|
-
`nuxt.config` and [Nuxt Modules](/docs/4.x/guide/going-further/modules) can be used to extend the build context, and [Nuxt Plugins](/docs/4.x/
|
|
80
|
+
`nuxt.config` and [Nuxt Modules](/docs/4.x/guide/going-further/modules) can be used to extend the build context, and [Nuxt Plugins](/docs/4.x/directory-structure/app/plugins) can be used to extend runtime.
|
|
80
81
|
|
|
81
82
|
When building an application for production, `nuxt build` will generate a standalone build in the `.output` directory, independent of `nuxt.config` and [Nuxt modules](/docs/4.x/guide/going-further/modules).
|
|
@@ -5,7 +5,7 @@ description: "Nuxt provides a runtime config API to expose configuration and sec
|
|
|
5
5
|
|
|
6
6
|
## Exposing
|
|
7
7
|
|
|
8
|
-
To expose config and environment variables to the rest of your app, you will need to define runtime configuration in your [`nuxt.config`](/docs/4.x/
|
|
8
|
+
To expose config and environment variables to the rest of your app, you will need to define runtime configuration in your [`nuxt.config`](/docs/4.x/directory-structure/nuxt-config) file, using the [`runtimeConfig`](/docs/4.x/api/nuxt-config#runtimeconfig) option.
|
|
9
9
|
|
|
10
10
|
```ts [nuxt.config.ts]
|
|
11
11
|
export default defineNuxtConfig({
|
|
@@ -45,7 +45,7 @@ The most common way to provide configuration is by using [Environment Variables]
|
|
|
45
45
|
|
|
46
46
|
::note
|
|
47
47
|
The Nuxt CLI has built-in support for reading your `.env` file in development, build and generate. But when you run your built server, **your `.env` file will not be read**.
|
|
48
|
-
:read-more{to="/docs/4.x/
|
|
48
|
+
:read-more{to="/docs/4.x/directory-structure/env"}
|
|
49
49
|
::
|
|
50
50
|
|
|
51
51
|
Runtime config values are **automatically replaced by matching environment variables at runtime**.
|
|
@@ -39,7 +39,7 @@ Explore all available Nuxt hooks.
|
|
|
39
39
|
|
|
40
40
|
## App Hooks (Runtime)
|
|
41
41
|
|
|
42
|
-
App hooks can be mainly used by [Nuxt Plugins](/docs/4.x/
|
|
42
|
+
App hooks can be mainly used by [Nuxt Plugins](/docs/4.x/directory-structure/app/plugins) to hook into rendering lifecycle but could also be used in Vue composables.
|
|
43
43
|
|
|
44
44
|
```ts [app/plugins/test.ts]
|
|
45
45
|
export default defineNuxtPlugin((nuxtApp) => {
|
|
@@ -55,7 +55,7 @@ Explore all available App hooks.
|
|
|
55
55
|
|
|
56
56
|
## Server Hooks (Runtime)
|
|
57
57
|
|
|
58
|
-
These hooks are available for [server plugins](/docs/4.x/
|
|
58
|
+
These hooks are available for [server plugins](/docs/4.x/directory-structure/server#server-plugins) to hook into Nitro's runtime behavior.
|
|
59
59
|
|
|
60
60
|
```ts [~/server/plugins/test.ts]
|
|
61
61
|
export default defineNitroPlugin((nitroApp) => {
|