eslint-config-noftalint

Noftaly's eslint configuration

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
eslint-config-noftalint
432.20.12 months ago4 years agoMinified + gzip package size for eslint-config-noftalint in KB

Readme

eslint-config-noftalint
npm version downloads size
This package provides noftaly's .eslintrc as an extensible shared config.\ See the comparison with airbnb, google and standard's config here

Table of Content

Usage

  • Install this package, with

$ npm i -D eslint           \
    eslint-config-noftalint \
    eslint-plugin-import    \
    eslint-plugin-node      \
    eslint-plugin-unicorn

  • Add noftalint to your .eslintrc.js: extends: ['noftalint']

Use with TypeScript

noftalint also contains TypeScript rules, from @typescript-eslint/eslint-plugin! They are not included by default, so you need to configure some things first.
  1. Run the following command to install the required dependencies

$ npm i -D typescript         \
    @typescript-eslint/parser \
    @typescript-eslint/eslint-plugin

  1. Update your .eslintrc.js configuration with the following values:

module.exports = {
  extends: ['noftalint/typescript'],
  parser: '@typescript-eslint/parser',
  plugins: ['@typescript-eslint'],
  ...
};

  1. Create a file named tsconfig.eslint.json, at the same level as your tsconfig.json.
  2. Add this inside your tsconfig.eslint.json. The includes property must be all the files you want to lint, including JS files.

{
  "extends": "./tsconfig.json",
  "include": [
    "src/**/*.ts",
    ".eslintrc.js"
  ]
}

If you want to use custom TypeScript's path aliases, you will have to follow these steps:
$ npm install --save-dev eslint-import-resolver-typescript

Update your .eslintrc.js by disabling node/no-missing-import as it does not support TypeScript's path aliases; and by updating the settings for import/resolver.
module.exports = {
  ...
  rules: {
    ...
    // It cannot resolve TypeScript's path aliases. See https://github.com/mysticatea/eslint-plugin-node/issues/233
    'node/no-missing-import': 'off',
  },
  settings: {
    ...
    'import/resolver': {
      typescript: {
        alwaysTryTypes: true,
      },
    },
  },
};

If you use the shebang notation inside your project, you will need to modify the node/shebang rule in your .eslintrc.js:
module.exports = {
  ...
  rules: {
    ...
    'node/shebang': ['error', {
      convertPath: {
        // Change your main file and your destination file to what you want
        'src/main.ts': ['^src/main.ts$', 'build/main.js'],
      },
    }],
  }
}

Links

GitHub repository: eslint-config-noftalint\ npm package: eslint-config-noftalint

Credits

Inspired by the Airbnb's config\ Generator adapted from Canonical's generator