1.0.0 • Published 4 years ago

@e9ine/eslint-config-node v1.0.0

Weekly downloads
7
License
ISC
Repository
-
Last release
4 years ago

@e9ine/eslint-config-node

This package provides e9ine's .eslintrc as an extensible shared config

Usage

We export 1 ESLint configurations for your usage which already inherits eslint-recommended config. So you do not need to extend eslint:recommended

Our default export contains all of our ESLint rules, including ECMAScript 6+ . It has its peer dependencies eslint so you do not require to install eslint separately

Installation

  1. Install the correct and latest version of the package

    npm install --save-dev @e9ine/eslint-config-node
  2. Make sure to extend the configurations to package.json

    ...
    
    "devDependencies": {
        ...
        "@e9ine/eslint-config-node": "^1.0.0"
    },
    "eslintConfig": {
        "root": true,
        "extends": [
          "@e9ine/eslint-config-node"
        ]
    }
  3. Add below two scripts for lint and lint-fix

    ...
    
    "scripts": {
        ...
        "lint": "eslint --ignore-path .gitignore .",
        "lint-fix": "eslint --ignore-path .gitignore . --fix"
    },
    
    ...

Integration with chalk

chalk must be added to make sure error messages are prompted properly.

npm install --save-dev chalk

Integration with husky

husky can be integrated with the projects based on the team size. However we highly recommend to use husky

  1. Install husky as dev dependency

    npm install --save-dev husky
  2. Define husky config in package.json

    ...
    
    "husky": {
        "hooks": {
          "pre-commit": "npm run lint"
        }
     }

Integration with lint-staged

lint-staged can be highly effective when you only would want to run linters on staged-files. This will also prevent the user from committing code which is not in compliance with the standards and specified formatting.

However we highly recommend to use lint-staged in combination with husky if you are working in a team consisting more than 2 members.

  1. Install lint-staged, chalk, husky as dev dependency

    npm install --save-dev lint-staged
  2. Define lint-staged config in package.json

    "husky": {
        "hooks": {
          "pre-commit": "lint-staged"
        }
    },
      "lint-staged": {
          "*.js": [
              "./node_modules/.bin/eslint --fix",
              "git add"
          ]
      }

--fix option will try to fix the formatting and fixable errors. If there are still any "manual-only-fixable" error found, then commit will be rejected.

Add scripts folder to root of the folder and copy below files.

  • verifyCommit.js
/* eslint no-console: 0 */
const chalk = require('chalk');
const msgPath = process.env.HUSKY_GIT_PARAMS;
const msg = require('fs')
    .readFileSync(msgPath, 'utf-8')
    .trim();

const commitRE = /^(revert: |Merge.+)|(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|chore|types|wip|merge)(\(.+\))?: .+/;

if (!commitRE.test(msg)) {
    console.error(`  ${chalk.bgRed.white(' ERROR ')} ${chalk.red('invalid commit message format.')}\n\n`);
    process.exit(1);
}
  • verifyUntrackable.js
/* eslint no-console: 0 */
const chalk = require('chalk');

console.log(process.argv);
if (process.argv[0]) {
    console.error(
        `  ${chalk.bgRed.white(' ERROR ')} ${chalk.red(
            'config.js must not be trackable.'
        )}\n\n`
    );
    process.exit(1);
}

How to use

npm run lint    // shows errors
npm run lint-fix    // fixes the errors
1.0.0

4 years ago

0.0.9-e

4 years ago

0.0.9-b

5 years ago

0.0.9-a

5 years ago

0.0.9

5 years ago