Official ESLint rules for Lightning Web Components (LWC).
$ npm install eslint babel-eslint @lwc/eslint-plugin-lwc --save-dev
Add lwc
to the plugins
section of your configuration. Then configure the desired rules in the rules
sections. Some of the syntax used in Lightning Web Components is not yet stage 4 (eg. decorators), and the out-of-the-box parser from ESLint doesn't support this syntax yet. In order to parse the LWC files properly, set the parser
field to babel-eslint
.
Example of .eslintrc
:
{
"parser": "babel-eslint",
"plugins": ["@lwc/eslint-plugin-lwc"],
"rules": {
"@lwc/lwc/no-deprecated": "error",
"@lwc/lwc/valid-api": "error",
"@lwc/lwc/no-document-query": "error"
}
}
For more details about configuration please refer to the dedicated section in the ESLint documentation: https://eslint.org/docs/user-guide/configuring
Rule ID | Description |
---|---|
lwc/no-deprecated | disallow usage of deprecated LWC APIs |
lwc/valid-api | validate api decorator usage |
lwc/valid-track | validate track decorator usage |
lwc/valid-wire | validate wire decorator usage |
lwc/no-document-query | Disallow DOM query at the document level |
Rule ID | Description |
---|---|
lwc/no-inner-html | disallow usage of innerHTML |
lwc/no-async-operation | restrict usage of async operations |
Older browsers like IE11 run LWC in compatibility mode. For more information about browser performance, please refer to Supported Browsers in the Lightning Web Components Developer Guide.
Rule ID | Description |
---|---|
lwc/no-async-await | disallow usage of the async-await syntax |
lwc/no-for-of | disallow usage of the for-of syntax |
lwc/no-rest-parameter | disallow usage of the rest parameter syntax |