@nuxt/docs-nightly 4.3.0-29356103.2f7957ac → 4.3.0-29430576.f48ea4c8
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 +4 -6
- 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 +36 -5
- package/1.getting-started/18.upgrade.md +43 -35
- 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 +2 -2
- 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 +10 -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 +2 -2
- 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/3.guide/4.modules/.navigation.yml +3 -0
- package/3.guide/4.modules/1.getting-started.md +103 -0
- package/3.guide/4.modules/2.module-anatomy.md +138 -0
- package/3.guide/4.modules/3.recipes-basics.md +299 -0
- package/3.guide/4.modules/4.recipes-advanced.md +231 -0
- package/3.guide/4.modules/5.testing.md +76 -0
- package/3.guide/4.modules/6.best-practices.md +104 -0
- package/3.guide/4.modules/7.ecosystem.md +32 -0
- package/3.guide/4.modules/index.md +36 -0
- package/{2.guide/4.recipes → 3.guide/5.recipes}/1.custom-routing.md +5 -5
- package/{2.guide/4.recipes → 3.guide/5.recipes}/2.vite-plugin.md +1 -1
- package/{2.guide/4.recipes → 3.guide/5.recipes}/3.custom-usefetch.md +1 -1
- package/{2.guide/4.recipes → 3.guide/5.recipes}/4.sessions-and-authentication.md +1 -1
- package/{2.guide/3.going-further → 3.guide/6.going-further}/1.events.md +2 -3
- package/{2.guide/3.going-further → 3.guide/6.going-further}/1.experimental-features.md +10 -10
- package/{2.guide/3.going-further → 3.guide/6.going-further}/1.features.md +1 -1
- package/{2.guide/3.going-further → 3.guide/6.going-further}/1.internals.md +5 -4
- package/{2.guide/3.going-further → 3.guide/6.going-further}/10.runtime-config.md +2 -2
- package/{2.guide/3.going-further → 3.guide/6.going-further}/2.hooks.md +3 -3
- package/{2.guide/3.going-further → 3.guide/6.going-further}/4.kit.md +1 -1
- package/{2.guide/3.going-further → 3.guide/6.going-further}/6.nuxt-app.md +5 -5
- package/{2.guide/3.going-further → 3.guide/6.going-further}/7.layers.md +42 -25
- package/{2.guide/3.going-further → 3.guide/6.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 +184 -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 +11 -11
- 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 +4 -4
- 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 +5 -5
- package/7.migration/20.module-authors.md +3 -3
- 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/2.guide/3.going-further/3.modules.md +0 -901
- 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/4.recipes → 3.guide/5.recipes}/.navigation.yml +0 -0
- /package/{2.guide/3.going-further → 3.guide/6.going-further}/.navigation.yml +0 -0
- /package/{2.guide/3.going-further → 3.guide/6.going-further}/11.nightly-release-channel.md +0 -0
- /package/{2.guide/3.going-further → 3.guide/6.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"
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Create Your First Module"
|
|
3
|
+
description: "Learn how to create your first Nuxt module using the official starter template."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Create a Module
|
|
7
|
+
|
|
8
|
+
We recommend you get started with Nuxt modules using our [starter template](https://github.com/nuxt/starter/tree/module):
|
|
9
|
+
|
|
10
|
+
::code-group{sync="pm"}
|
|
11
|
+
|
|
12
|
+
```bash [npm]
|
|
13
|
+
npm create nuxt -- -t module my-module
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
```bash [yarn]
|
|
17
|
+
yarn create nuxt -t module my-module
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
```bash [pnpm]
|
|
21
|
+
pnpm create nuxt -t module my-module
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
```bash [bun]
|
|
25
|
+
bun create nuxt --template=module my-module
|
|
26
|
+
```
|
|
27
|
+
::
|
|
28
|
+
|
|
29
|
+
This will create a `my-module` project with all the boilerplate necessary to develop and publish your module.
|
|
30
|
+
|
|
31
|
+
**Next steps:**
|
|
32
|
+
|
|
33
|
+
1. Open `my-module` in your IDE of choice
|
|
34
|
+
2. Install dependencies using your favorite package manager
|
|
35
|
+
3. Prepare local files for development using `npm run dev:prepare`
|
|
36
|
+
4. Follow this document to learn more about Nuxt modules
|
|
37
|
+
|
|
38
|
+
## Use the Starter Template
|
|
39
|
+
|
|
40
|
+
Learn how to perform basic tasks with the module starter.
|
|
41
|
+
|
|
42
|
+
::tip{icon="i-lucide-video" to="https://vueschool.io/lessons/navigating-the-official-starter-template?friend=nuxt" target="_blank"}
|
|
43
|
+
Watch Vue School video about Nuxt module starter template.
|
|
44
|
+
::
|
|
45
|
+
|
|
46
|
+
### Develop Your Module
|
|
47
|
+
|
|
48
|
+
While your module source code lives inside the `src` directory, to develop a module you often need a Nuxt application to test it against. That's what the `playground` directory is for. It's a Nuxt application you can tinker with that is already configured to run with your module.
|
|
49
|
+
|
|
50
|
+
You can interact with the playground like with any Nuxt application.
|
|
51
|
+
|
|
52
|
+
- Launch its development server with `npm run dev`, it should reload itself as you make changes to your module in the `src` directory
|
|
53
|
+
- Build it with `npm run dev:build`
|
|
54
|
+
|
|
55
|
+
::note
|
|
56
|
+
All other `nuxt` commands can be used against the `playground` directory (e.g. `nuxt <COMMAND> playground`). Feel free to declare additional `dev:*` scripts within your `package.json` referencing them for convenience.
|
|
57
|
+
::
|
|
58
|
+
|
|
59
|
+
### Run Tests
|
|
60
|
+
|
|
61
|
+
The module starter comes with a basic test suite:
|
|
62
|
+
|
|
63
|
+
- A linter powered by [ESLint](https://eslint.org), run it with `npm run lint`
|
|
64
|
+
- A test runner powered by [Vitest](https://vitest.dev), run it with `npm run test` or `npm run test:watch`
|
|
65
|
+
|
|
66
|
+
::tip
|
|
67
|
+
Feel free to augment this default test strategy to better suit your needs.
|
|
68
|
+
::
|
|
69
|
+
|
|
70
|
+
### Build Your Module
|
|
71
|
+
|
|
72
|
+
Nuxt modules come with their own builder provided by [`@nuxt/module-builder`](https://github.com/nuxt/module-builder#readme). This builder doesn't require any configuration on your end, supports TypeScript, and makes sure your assets are properly bundled to be distributed to other Nuxt applications.
|
|
73
|
+
|
|
74
|
+
You can build your module by running `npm run prepack`.
|
|
75
|
+
|
|
76
|
+
::tip
|
|
77
|
+
While building your module can be useful in some cases, most of the time you won't need to build it on your own: the `playground` takes care of it while developing, and the release script also has you covered when publishing.
|
|
78
|
+
::
|
|
79
|
+
|
|
80
|
+
### Publish to npm
|
|
81
|
+
|
|
82
|
+
::important
|
|
83
|
+
Before publishing your module to npm, makes sure you have an [npmjs.com](https://www.npmjs.com) account and that you're authenticated to it locally with `npm login`.
|
|
84
|
+
::
|
|
85
|
+
|
|
86
|
+
While you can publish your module by bumping its version and using the `npm publish` command, the module starter comes with a release script that helps you make sure you publish a working version of your module to npm and more.
|
|
87
|
+
|
|
88
|
+
To use the release script, first, commit all your changes (we recommend you follow [Conventional Commits](https://www.conventionalcommits.org) to also take advantage of automatic version bump and changelog update), then run the release script with `npm run release`.
|
|
89
|
+
|
|
90
|
+
When running the release script, the following will happen:
|
|
91
|
+
|
|
92
|
+
- First, it will run your test suite by:
|
|
93
|
+
- Running the linter (`npm run lint`)
|
|
94
|
+
- Running unit, integration, and e2e tests (`npm run test`)
|
|
95
|
+
- Building the module (`npm run prepack`)
|
|
96
|
+
- Then, if your test suite went well, it will proceed to publish your module by:
|
|
97
|
+
- Bumping your module version and generating a changelog according to your Conventional Commits
|
|
98
|
+
- Publishing the module to npm (for that purpose, the module will be built again to ensure its updated version number is taken into account in the published artifact)
|
|
99
|
+
- Pushing a git tag representing the newly published version to your git remote origin
|
|
100
|
+
|
|
101
|
+
::tip
|
|
102
|
+
As with other scripts, feel free to fine-tune the default `release` script in your `package.json` to better suit your needs.
|
|
103
|
+
::
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Understand Module Structure"
|
|
3
|
+
description: "Learn how Nuxt modules are structured and how to define them."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
There are two types of Nuxt modules:
|
|
7
|
+
|
|
8
|
+
- published modules are distributed on npm - you can see a list of some community modules on [the Nuxt website](/modules).
|
|
9
|
+
- "local" modules exist within a Nuxt project, either [inlined in Nuxt config](/docs/4.x/api/nuxt-config#modules) or within [the `modules` directory](/docs/4.x/directory-structure/modules).
|
|
10
|
+
|
|
11
|
+
In either case, they work in the same way.
|
|
12
|
+
|
|
13
|
+
## Define Your Module
|
|
14
|
+
|
|
15
|
+
::note
|
|
16
|
+
When using the starter, your module definition is available at `src/module.ts`.
|
|
17
|
+
::
|
|
18
|
+
|
|
19
|
+
The module definition is the entry point of your module. It's what gets loaded by Nuxt when your module is referenced within a Nuxt configuration.
|
|
20
|
+
|
|
21
|
+
At a low level, a Nuxt module definition is a simple, potentially asynchronous, function accepting inline user options and a `nuxt` object to interact with Nuxt.
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
export default function (inlineOptions, nuxt) {
|
|
25
|
+
// You can do whatever you like here..
|
|
26
|
+
console.log(inlineOptions.token) // `123`
|
|
27
|
+
console.log(nuxt.options.dev) // `true` or `false`
|
|
28
|
+
nuxt.hook('ready', (nuxt) => {
|
|
29
|
+
console.log('Nuxt is ready')
|
|
30
|
+
})
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
You can get type hinting for this function using the higher-level `defineNuxtModule` helper provided by [Nuxt Kit](/docs/4.x/guide/going-further/kit).
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
import { defineNuxtModule } from '@nuxt/kit'
|
|
38
|
+
|
|
39
|
+
export default defineNuxtModule((options, nuxt) => {
|
|
40
|
+
nuxt.hook('pages:extend', (pages) => {
|
|
41
|
+
console.log(`Discovered ${pages.length} pages`)
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
However, **we do not recommend** using this low-level function definition. Instead, to define a module, **we recommend** using the object-syntax with `meta` property to identify your module, especially when publishing to npm.
|
|
47
|
+
|
|
48
|
+
This helper makes writing Nuxt modules more straightforward by implementing many common patterns needed by modules, guaranteeing future compatibility and improving the experience for both module authors and users.
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
import { defineNuxtModule } from '@nuxt/kit'
|
|
52
|
+
|
|
53
|
+
export default defineNuxtModule({
|
|
54
|
+
meta: {
|
|
55
|
+
// Usually the npm package name of your module
|
|
56
|
+
name: '@nuxtjs/example',
|
|
57
|
+
// The key in `nuxt.config` that holds your module options
|
|
58
|
+
configKey: 'sample',
|
|
59
|
+
// Compatibility constraints
|
|
60
|
+
compatibility: {
|
|
61
|
+
// Semver version of supported nuxt versions
|
|
62
|
+
nuxt: '>=3.0.0',
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
// Default configuration options for your module, can also be a function returning those
|
|
66
|
+
defaults: {},
|
|
67
|
+
// Shorthand sugar to register Nuxt hooks
|
|
68
|
+
hooks: {},
|
|
69
|
+
// Configuration for other modules - this does not ensure the module runs before
|
|
70
|
+
// your module, but it allows you to change the other module's configuration before it runs
|
|
71
|
+
moduleDependencies: {
|
|
72
|
+
'some-module': {
|
|
73
|
+
// You can specify a version constraint for the module. If the user has a different
|
|
74
|
+
// version installed, Nuxt will throw an error on startup.
|
|
75
|
+
version: '>=2',
|
|
76
|
+
// By default moduleDependencies will be added to the list of modules to be installed
|
|
77
|
+
// by Nuxt unless `optional` is set.
|
|
78
|
+
optional: true,
|
|
79
|
+
// Any configuration that should override `nuxt.options`.
|
|
80
|
+
overrides: {},
|
|
81
|
+
// Any configuration that should be set. It will override module defaults but
|
|
82
|
+
// will not override any configuration set in `nuxt.options`.
|
|
83
|
+
defaults: {},
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
// The function holding your module logic, it can be asynchronous
|
|
87
|
+
setup (moduleOptions, nuxt) {
|
|
88
|
+
// ...
|
|
89
|
+
},
|
|
90
|
+
})
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`defineNuxtModule` returns a wrapper function with the lower level `(inlineOptions, nuxt)` module signature. This wrapper function applies defaults and other necessary steps before calling your `setup` function:
|
|
94
|
+
|
|
95
|
+
- Support `defaults` and `meta.configKey` for automatically merging module options
|
|
96
|
+
- Type hints and automated type inference
|
|
97
|
+
- Ensure module gets installed only once using a unique key computed from `meta.name` or `meta.configKey`
|
|
98
|
+
- Automatically register Nuxt hooks
|
|
99
|
+
- Automatically check for compatibility issues based on module meta
|
|
100
|
+
- Expose `getOptions` and `getMeta` for internal usage of Nuxt
|
|
101
|
+
- Ensuring backward and upward compatibility as long as the module is using `defineNuxtModule` from the latest version of `@nuxt/kit`
|
|
102
|
+
- Integration with module builder tooling
|
|
103
|
+
|
|
104
|
+
## Add Runtime Code
|
|
105
|
+
|
|
106
|
+
::note
|
|
107
|
+
When using the starter, the runtime directory is `src/runtime/`.
|
|
108
|
+
::
|
|
109
|
+
|
|
110
|
+
Modules, like everything in a Nuxt configuration, aren't included in your application runtime. However, you might want your module to provide, or inject runtime code to the application it's installed on. That's what the runtime directory enables you to do.
|
|
111
|
+
|
|
112
|
+
Inside the runtime directory, you can provide any kind of assets related to the Nuxt app:
|
|
113
|
+
- Vue components
|
|
114
|
+
- Composables
|
|
115
|
+
- [Nuxt plugins](/docs/4.x/directory-structure/app/plugins)
|
|
116
|
+
|
|
117
|
+
To the [server engine](/docs/4.x/guide/concepts/server-engine), Nitro:
|
|
118
|
+
- API routes
|
|
119
|
+
- Middlewares
|
|
120
|
+
- Nitro plugins
|
|
121
|
+
|
|
122
|
+
Or any other kind of asset you want to inject in users' Nuxt applications:
|
|
123
|
+
- Stylesheets
|
|
124
|
+
- 3D models
|
|
125
|
+
- Images
|
|
126
|
+
- etc.
|
|
127
|
+
|
|
128
|
+
You'll then be able to inject all those assets inside the application from your [module definition](#define-your-module).
|
|
129
|
+
|
|
130
|
+
::tip
|
|
131
|
+
Learn more about asset injection in [the recipes section](/docs/4.x/guide/modules/recipes-basics).
|
|
132
|
+
::
|
|
133
|
+
|
|
134
|
+
::warning
|
|
135
|
+
Published modules cannot leverage auto-imports for assets within their runtime directory. Instead, they have to import them explicitly from `#imports` or alike.
|
|
136
|
+
:br :br
|
|
137
|
+
Auto-imports are not enabled for files within `node_modules` (the location where a published module will eventually live) for performance reasons.
|
|
138
|
+
::
|