@open-xchange/lint v0.2.0
Open-Xchange ESLint Configuration
This is a meta npm module that contains a standard configuration for linting. Adding this module makes sure that all projects are using the same version of ESLint as well as the same basic rules, which results in a more streamlined codebase.
Included packages
The following packages are already part of the configuration:
- @eslint/eslintrc
- @vue/eslint-config-standard
- eslint
- eslint-plugin-chai-friendly
- eslint-plugin-codeceptjs
- eslint-plugin-import
- eslint-plugin-license-header
- eslint-plugin-mocha
- eslint-plugin-vue
Migration
To start using this configuration, a few steps are needed:
Remove eslint as well as the packages from the list above.
Add the package:
pnpm i -D @open-xchange/lintCreate a minimal eslint.config.js
echo "import config from '@open-xchange/lint'
export default [
...config,
]" > eslint.config.jsAdd the following entry to the package.json to prevent warnings:
"pnpm": {
"peerDependencyRules": {
"allowedVersions": {
"eslint": "9",
"eslint-plugin-n": "17"
}
}
}Optional:
- Migrate necessary rules from the old
.eslintrcto the new flat config format in theeslint.config.js. For help and references see the official migration guide. - If you have a
.npmrcfile, add the following line:
echo "public-hoist-pattern[]=*eslint*" >> .npmrcAlthough
eslintis inpublic-hoist-patternby default, it gets manually added here to prevent overwriting it.
Customization
Customizing the configuration means adding rules or plugins to the eslint.config.js. To do this please refer to the documentation.