Nanotechnology Promises Much

    @contentful/eslint-config-backend

    8.0.1 • Public • Published

    You can find this repo on NPM and you should use NPM to install it. Only clone this repo if you want to contribute.

    Installation

    $ npm install --save-dev @contentful/eslint-config-backend@latest eslint@latest eslint-plugin-mocha@latest eslint-plugin-promise@latest eslint-plugin-standard@latest eslint-plugin-node@latest eslint-plugin-import@latest

    Add the following files to your project:

    .eslintrc.js at your project root

    module.exports = {
      extends: '@contentful/backend'
    };

    Optionally if you're using mocha add this file to your test directory test/.eslintrc.js

    module.exports = {
      env: {
        mocha: true
      },
      globals: {
        expect: true
      }
    };

    You now have a locally installed eslint in node_modules/.bin/. It can be run with ./node_modules/.bin/eslint

    Pro Tip:

    • add it to your PATH like this: PATH=$PATH:./node_modules/.bin/
    • just run the eslint command in your project folder.

    Note that a globally installed eslint will not work because it won't find the config module. Also installing global modules is very unsafe.

    Running linter

    You can run the linter with eslint -c .eslintrc.{yaml, json} <FILE OR FOLDER PATH> Check ESLint documentation for more information.

    IDE integration

    Atom

    Install the linter-eslint plugin. It should work without any change in configuration.

    Other

    IDE missing? Contributions are welcomed.

    Precommit hook

    Note: This is optional and you should discuss it with the owner of the repo before enabling this hook.

    Install the pre-commit NPM package: npm install --save-dev pre-commit which sets up hooks automatically.

    Update your package.json to include these changes:

    "scripts": {
       "lint-js": "LIST=`git diff-index --name-only HEAD | grep \\.js$`; if [ \"$LIST\" ]; then node node_modules/eslint/bin/eslint.js -c .eslintrc.yaml $LIST; fi"
    },
    "pre-commit": [
      "lint-js"
    ],

    ESLint should now run before every commit and automatically lint .js files.

    Rules

    Rules are based on a combination of StandardJS and this ES6 addition.

    Our rules are slightly different in the following points:

    Major points

    • Line length: 120 characters
    • Semicolons
    • 2 space indentation
    • Use single quotes

    Minor points

    • Each variable should have its own keyword. (So no const foo, bar)
    • No short-hand operators like n++ or n+=1 should be used. Use n = n + 1 instead. For loops are the exception, so for (let i = 0; i < 10; i++) is still allowed.
    • else / elseif must be placed after the previous closing bracket on the same line.

    Keywords

    Install

    npm i @contentful/eslint-config-backend

    DownloadsWeekly Downloads

    6,573

    Version

    8.0.1

    License

    ISC

    Unpacked Size

    5.52 kB

    Total Files

    4

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar