eslint-config-noftalint

2.21.0 • Public • Published

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

Package Sidebar

Install

npm i eslint-config-noftalint

Weekly Downloads

41

Version

2.21.0

License

MIT

Unpacked Size

90.2 kB

Total Files

19

Last publish

Collaborators

  • noftaly