nuxt/nuxt
Once you've read the general contribution guide, here are some specific points to make about contributions to the nuxt/nuxt
repository.
Monorepo Guide
packages/kit
Toolkit for authoring Nuxt Modules
- Published as:
@nuxt/kit
- Learn more about this package.
packages/nuxi
Nuxt Command Line Interface
- Published as:
nuxi
- Learn more about this package.
packages/nuxt
The core of Nuxt 3
- Published as:
nuxt
packages/schema
Cross-version Nuxt typedefs and defaults
- Published as:
@nuxt/schema
packages/test-utils
Test utilities for Nuxt.
- Published as:
@nuxt/test-utils
packages/vite
The Vite bundler for Nuxt 3.
- Published as:
@nuxt/vite-builder
- Learn more about this package.
packages/webpack
The webpack bundler for Nuxt 3
- Published as:
@nuxt/webpack-builder
- Learn more about this package.
Using the Playground
While working on a PR, you will likely want to check if your changes are working correctly.
You can modify the example app in playground/
, and run it with pnpm dev
. Please make sure not to commit it to your branch, but it could be helpful to add some example code to your PR description. This can help reviewers and other Nuxt users understand the feature you've built in-depth.
Testing
Every new feature should have a corresponding unit test (if possible). The test
folder in this repository is currently a work in progress, but do your best to create a new test following the example of what's already there.
Before creating a PR or marking it as ready-to-review, ensure that all tests pass by running pnpm test
locally.
Linting
You might have noticed already that we use ESLint to enforce a coding standard. Please run yarn lint
before committing your changes to verify that the code style is correct. If not, you can use yarn lint --fix
to fix most of the style changes. If there are still errors left, you must correct them manually.
Documentation
If you are adding a new feature or refactoring or changing the behavior of Nuxt in any other manner, you'll likely want to document the changes. Please include any changes to the docs in the same PR. You don't have to write documentation up on the first commit (but please do so as soon as your pull request is mature enough). Make sure to make changes according to the Documentation Guide.
Final Checklist
When submitting your PR, there is a simple template that you have to fill out. Please tick all appropriate "answers" in the checklists.
Documentation Guide
If you spot an area where we can improve documentation or error messages, please do open a PR - even if it's just to fix a typo!
Quick Edits
If you spot a typo or want to rephrase a sentence, you can click on the Edit this page on GitHub link located after the content of every page.
Make the change directly in the GitHub interface and open a Pull Request.
Longer Edits
The documentation content is inside the docs/
directory of the nuxt/nuxt repository and written in markdown.
To contribute, fork the repository and follow these steps and start docs in development mode.
After making your changes:
- Lint the documentation with the
lint:docs
command. - Open a Pull Request. Please make sure your PR title adheres to the conventional commits guidelines.
Linting Docs
Documentation is linted using MarkdownLint and case police to keep the documentation cohesive.
Set Up Your Local Development Environment
To contribute to Nuxt, you need to set up a local environment.
- Fork the nuxt/nuxt repository to your own GitHub account and then clone it to your local device.
- Ensure using the latest Node.js (20.x)
- Enable Corepack using
corepack enable
to havepnpm
andyarn
- Run
pnpm install
to install the dependencies.If you are adding a dependency, please use
pnpm add
. Thepnpm-lock.yaml
file is the source of truth for all Nuxt dependencies. - Run
pnpm build:stub
to activate the passive development system - Check out a branch where you can work and commit your changes:
git checkout -b my-new-branch
Set Up Documentation Website in Local Environment
The Nuxt documentation is currently deployed within nuxt/nuxt.com as a layer.
- Run
pnpm build:stub
once in the root directory - Go into the
.website
directory:cd .website
- Install dependencies using
pnpm install
- Run
pnpm dev
to start docs in development mode - Before opening a PR, run
pnpm lint:docs:fix
to highlight and resolve any lint issues
🚧 This repository will be open-sourced shortly. Until then, you will need to open a pull request to see a preview of your changes.
We recommend that you install the MDC extension for VS Code.