Vue.js Contributing Guide

Hi! I'm really excited that you are interested in contributing to Vue.js. Before submitting your contribution, please make sure to take a moment and read through the following guidelines:

Issue Reporting Guidelines

Pull Request Guidelines

Development Setup

You will need Node.js version 18+ and pnpm version 8+.

After cloning the repo, run:

$ pnpm i # install the dependencies of the project

Committing Changes

Commit messages should follow the commit message convention so that changelogs can be automatically generated. Commit messages will be automatically validated upon commit. If you are not familiar with the commit message convention, you can use npm run commit instead of git commit, which provides an interactive CLI for generating proper commit messages.

Commonly used NPM scripts

# watch and auto re-build dist/vue.js
$ npm run dev

# run unit tests
$ npm run test:unit

# run specific tests in watch mode
$ npx vitest {test_file_name_pattern_to_match}

# build all dist files, including npm packages
$ npm run build

# run the full test suite, including unit/e2e/type checking
$ npm test

There are some other scripts available in the scripts section of the package.json file.

The default test script will do the following: lint with ESLint -> type check with Flow -> unit tests with coverage -> e2e tests. Please make sure to have this pass successfully before submitting a PR. Although the same tests will be run against your PR on the CI server, it is better to have it working locally.

Project Structure

Financial Contribution

As a pure community-driven project without major corporate backing, we also welcome financial contributions via GitHub Sponsors and OpenCollective. Please consult the Sponsor Page for more details.

Credits

Thank you to all the people who have already contributed to Vue.js!