Custom eslint rules used in various Welldone-Software's projects

Downloads in past


430.5.22 years ago2 years agoMinified + gzip package size for @welldone-software/eslint-plugin in KB


Prevent to use anything except import/export


You'll first need to install ESLint:
$ npm i eslint --save-dev

Next, install @welldone-software/eslint-plugin:
$ npm install @welldone-software/eslint-plugin --save-dev

Note: If you installed ESLint globally (using the -g flag) then you must also install @welldone-software/eslint-plugin globally.


Add @welldone-software to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:
  "plugins": ["@welldone-software"]

Then configure the rules you want to use under the rules section.
  "rules": {
    "@welldone-software/modules-engagement": "error",


Rules of Modules Engagement

This rule enforces Welldone's standard file structure. More details about the rule can be found here.


These are the possible configs and their defaults for the rule:
  "rules": {
    "@welldone-software/modules-engagement": ["error", {
      // provide a glob to only lint certain paths. F.E:
      //   glob": "/packages/!(common-package)/**/!(*.stories|*.test).js"
      "glob": null, 
      // path of modules under package.json's
      "modulesPath": "/src",
      // Levels to enforce imports between modules
      "modulesLevels": {'common': 1, 'shared': 1, 'app': 3},
      // Default level for other modules
      "middleModulesLevel": 2,
      // Allow importing from inner paths in modules. F.E:
      // "moduleInnerPaths": ['/components']
      "moduleInnerPaths": [],
      // Array of modules that can be used not only from their root path
      "ignoreInnerPathsForModules": ['common', 'shared']

Supported Rules

  • Fill in provided rules here