MagicMirror/.github/CONTRIBUTING.md
Kristjan ESPERANTO 965e935881
[linter] Review linter setup (#3783)
- [2b395b9f] Fix command to lint markdown in `CONTRIBUTING.md`
- [fed4c86c] Re-activate JSDoc ESLint plugin and fix linting issues (As
far as I remember, we deactivated it when we upgraded to ESLint 9
because it was not compatible with it. But its now.)
- [a3d2064b] Refactor ESLint config to use `defineConfig` and
`globalIgnores` ([these are like new
defaults](https://eslint.org/blog/2025/03/flat-config-extends-define-config-global-ignores/))
- [a3d2064b] Replace `eslint-plugin-import` with
`eslint-plugin-import-x`
(https://github.com/es-tooling/module-replacements/blob/main/docs/modules/eslint-plugin-import.md)
- [86a185b6] Switch Stylelint config to flat format and simplify
Stylelint scripts (like we already did for ESLint and prettier)
  - [f5a2c541] Fix some typos
2025-05-12 23:40:05 +02:00

1.3 KiB

Contribution Policy for MagicMirror²

Thanks for contributing to MagicMirror²!

We hold our code to standard, and these standards are documented below.

Linters

We use prettier for automatic formatting a lot all our files. The configuration is in our prettier.config.mjs file.

To run prettier, use node --run lint:prettier.

JavaScript: Run ESLint

We use ESLint to lint our JavaScript files. The configuration is in our eslint.config.mjs file.

To run ESLint, use node --run lint:js.

CSS: Run StyleLint

We use StyleLint to lint our CSS. The configuration is in our stylelint.config.mjs file.

To run StyleLint, use node --run lint:css.

Markdown: Run markdownlint

We use markdownlint-cli2 to lint our markdown files. The configuration is in our .markdownlint.json file.

To run markdownlint, use node --run lint:markdown.

Testing

We use Jest for JavaScript testing.

To run all tests, use node --run test.

The specific test commands are defined in package.json. So you can also run the specific tests with other commands, e.g. node --run test:unit or npx jest tests/e2e/env_spec.js.