85 lines
2.4 KiB
Markdown
85 lines
2.4 KiB
Markdown
# eslint-plugin-mozilla
|
|
|
|
A collection of rules that help enforce JavaScript coding standard in the Mozilla project.
|
|
|
|
These are primarily developed and used within the Firefox build system ([mozilla-central](https://hg.mozilla.org/mozilla-central/)), but are made available for other related projects to use as well.
|
|
|
|
## Usage
|
|
|
|
### Within mozilla-central:
|
|
|
|
```sh
|
|
$ ./mach eslint --setup
|
|
```
|
|
|
|
### Outside mozilla-central:
|
|
|
|
Install ESLint [ESLint](http://eslint.org):
|
|
|
|
```sh
|
|
$ npm i eslint --save-dev
|
|
```
|
|
|
|
Next, install `eslint-plugin-mozilla`:
|
|
|
|
```sh
|
|
$ npm install eslint-plugin-mozilla --save-dev
|
|
```
|
|
|
|
#### Flat config
|
|
|
|
```js
|
|
import mozilla from "eslint-plugin-mozilla"
|
|
|
|
export default [
|
|
...mozilla.configs["flat/recommended"];
|
|
]
|
|
```
|
|
|
|
The recommended configuration does not set up globals for all files. It
|
|
only sets the globals in the environment for Mozilla specific files, e.g. system
|
|
modules, sjs files and workers.
|
|
|
|
If you use some of the other configurations, note that they are objects rather
|
|
than arrays.
|
|
|
|
#### Legacy Configuration
|
|
|
|
```js
|
|
{
|
|
"extends": ["plugin:mozilla/recommended"]
|
|
}
|
|
```
|
|
|
|
#### Notes
|
|
|
|
If you use prettier in your setup, you may need to extend from eslint-config-prettier
|
|
to ensure that any rules that conflict with prettier are disabled.
|
|
See [here for more information](https://github.com/prettier/eslint-config-prettier?tab=readme-ov-file#installation).
|
|
|
|
## Documentation
|
|
|
|
For details about the rules, please see the [firefox documentation page](http://firefox-source-docs.mozilla.org/tools/lint/linters/eslint-plugin-mozilla.html).
|
|
|
|
## Source Code
|
|
|
|
The sources can be found at:
|
|
|
|
* Code: https://searchfox.org/mozilla-central/source/tools/lint/eslint/eslint-plugin-mozilla
|
|
* Documentation: https://searchfox.org/mozilla-central/source/docs/code-quality/lint/linters
|
|
|
|
## Bugs
|
|
|
|
Please file bugs in Bugzilla in the Lint and Formatting component of the Developer Infrastructure product.
|
|
|
|
* [Existing bugs](https://bugzilla.mozilla.org/buglist.cgi?resolution=---&list_id=17273428&product=Developer%20Infrastructure&query_format=advanced&component=Lint%20and%20Formatting)
|
|
* [New bugs](https://bugzilla.mozilla.org/enter_bug.cgi?component=Lint%20and%20Formatting&product=Developer%20Infrastructure)
|
|
|
|
## Tests
|
|
|
|
The tests can only be run from within mozilla-central. To run the tests:
|
|
|
|
```sh
|
|
$ ./mach npm --prefix tools/lint/eslint/eslint-plugin-mozilla ci
|
|
$ ./mach npm --prefix tools/lint/eslint/eslint-plugin-mozilla test
|
|
```
|