0.0.9 • Published 11 days ago

@open-xchange/lint v0.0.9

Weekly downloads
-
License
AGPL-3.0-or-later
Repository
-
Last release
11 days ago

Open-Xchange ESLint Configuration

This is meta npm module 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-config-standard
  • eslint-plugin-chai-friendly
  • eslint-plugin-codeceptjs
  • eslint-plugin-import
  • eslint-plugin-jsdoc
  • eslint-plugin-license-header
  • eslint-plugin-mocha
  • eslint-plugin-n
  • eslint-plugin-promise
  • eslint-plugin-vue

Migration

To start using this configuration, a few steps are needed:

  1. Remove eslint as well as the packages above from the list above.

  2. Add the package:

pnpm add -D @open-xchange/lint
  1. Create a minimal eslint.config.js:
echo "import config from '@open-xchange/lint'

export default [
  ...config,
]" > eslint.config.js
  1. Add the following entry to the package.json to prevent warnings:
"pnpm": {
  "peerDependencyRules": {
    "allowedVersions": {
      "eslint": "9",
      "eslint-plugin-n": "17"
    }
  }
}
  1. Optional: If you are using VS Code, you have to enable the setting "eslint.experimental.useFlatConfig": true.

  2. Optional: Migrate necessary rules from the old eslint.rc to the new flat config format in the eslint.config.js. For help and references see the official migration guide.

  3. Optional: If you have a .npmrc file, add the following line:

echo "public-hoist-pattern[]=*eslint*" >> .npmrc

Although eslint is in public-hoist-pattern by 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.