Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vuejs/eslint-plugin-vue
Official ESLint plugin for Vue.js
https://github.com/vuejs/eslint-plugin-vue
eslint eslint-plugin hacktoberfest html javascript npm npm-module npm-package static-analysis vue
Last synced: 3 days ago
JSON representation
Official ESLint plugin for Vue.js
- Host: GitHub
- URL: https://github.com/vuejs/eslint-plugin-vue
- Owner: vuejs
- License: mit
- Created: 2016-08-29T15:26:53.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-28T10:24:14.000Z (about 1 month ago)
- Last Synced: 2024-10-29T21:09:31.160Z (about 1 month ago)
- Topics: eslint, eslint-plugin, hacktoberfest, html, javascript, npm, npm-module, npm-package, static-analysis, vue
- Language: JavaScript
- Homepage: https://eslint.vuejs.org/
- Size: 4.89 MB
- Stars: 4,462
- Watchers: 55
- Forks: 666
- Open Issues: 192
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-repositories - vuejs/eslint-plugin-vue - Official ESLint plugin for Vue.js (JavaScript)
- awesome-github-star - eslint-plugin-vue
- awesome-frontend - eslint-plugin-vue
- awesome-vue-js - Eslint Plugin-vue
- awesome-eslint - VueJS - Plugin for VueJS. (Plugins / Frameworks)
README
# eslint-plugin-vue
[![NPM version](https://img.shields.io/npm/v/eslint-plugin-vue.svg?style=flat)](https://npmjs.org/package/eslint-plugin-vue)
[![NPM downloads](https://img.shields.io/npm/dm/eslint-plugin-vue.svg?style=flat)](https://npmjs.org/package/eslint-plugin-vue)
[![CircleCI](https://img.shields.io/circleci/project/github/vuejs/eslint-plugin-vue/master.svg?style=flat)](https://circleci.com/gh/vuejs/eslint-plugin-vue)
[![License](https://img.shields.io/github/license/vuejs/eslint-plugin-vue.svg?style=flat)](https://github.com/vuejs/eslint-plugin-vue/blob/master/LICENSE)> Official ESLint plugin for Vue.js
## :book: Documentation
Please refer to the [official website](https://eslint.vuejs.org).
## :anchor: Versioning Policy
This plugin follows [Semantic Versioning](https://semver.org) and [ESLint's Semantic Versioning Policy](https://github.com/eslint/eslint#semantic-versioning-policy).
## :newspaper: Releases
This project uses [GitHub Releases](https://github.com/vuejs/eslint-plugin-vue/releases).
## :beers: Contribution Guide
Contributing is welcome! See the [ESLint Vue Plugin Developer Guide](https://eslint.vuejs.org/developer-guide).
### Working With Rules
Be sure to read the [official ESLint guide](https://eslint.org/docs/developer-guide/working-with-rules) before you start writing a new rule.
To see what an abstract syntax tree (AST) of your code looks like, you may use [AST Explorer](https://astexplorer.net). After opening [AST Explorer](https://astexplorer.net), select `Vue` as the syntax and `vue-eslint-parser` as the parser.
The default JavaScript parser must be replaced because [Vue.js single file components](https://vuejs.org/guide/scaling-up/sfc.html) are not plain JavaScript, but a custom file format. [`vue-eslint-parser`](https://github.com/vuejs/vue-eslint-parser) is a replacement parser that generates an enhanced AST with nodes that represent specific parts of the template syntax, as well as the contents of the `` tag.
To learn more about certain nodes in a produced AST, see the [ESTree project page](https://github.com/estree/estree) and the [vue-eslint-parser AST documentation](https://github.com/vuejs/vue-eslint-parser/blob/master/docs/ast.md).
`vue-eslint-parser` provides a few useful parser services to help traverse the produced AST and access template tokens:
- `context.parserServices.defineTemplateBodyVisitor(visitor, scriptVisitor)`
- `context.parserServices.getTemplateBodyTokenStore()`Check out an [example rule](https://github.com/vuejs/eslint-plugin-vue/blob/master/lib/rules/mustache-interpolation-spacing.js) to see usage of these services.
Be aware that depending on the code samples you write in tests, the `RuleTester` parser property must be set accordingly (this can be done on a test by test basis). See an [example here](https://github.com/vuejs/eslint-plugin-vue/blob/master/tests/lib/rules/attribute-hyphenation.js#L19).
If you're stuck, remember there are many rules available for reference. If you can't find the right solution, don't hesitate to reach out in [issues](https://github.com/vuejs/eslint-plugin-vue/issues) – we're happy to help!
## :lock: License
See the [LICENSE](LICENSE) file for license rights and limitations (MIT).