@contentful/eslint-config-backend

    10.1.0 • 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

    5,158

    Version

    10.1.0

    License

    UNLICENSED

    Unpacked Size

    77.1 kB

    Total Files

    15

    Last publish

    Collaborators

    • max.cheremisin
    • sofia_margariti
    • dineshswamy_paranthaman
    • dmytro.filippov
    • arjun-londhey
    • eric-miller2129
    • liamstokingercontentful
    • aodhagan-cf
    • vikaskumr
    • dennise917
    • alicankargin
    • cf-aleks
    • jeffm_cf
    • bvkr
    • ebctfl
    • sjouli
    • mayakarabula
    • cf-engit
    • harshil1712
    • paradoja
    • mattvanvoorst-contentful
    • bruce.felt
    • holgerstorm
    • grassator
    • cf-remylenoir
    • mayagillilan
    • ahsen
    • mar.contentful
    • rowadz_contentful
    • edblankenship
    • kiyutink_contentful
    • roosterhack
    • kurtulus-contentful
    • omasopust-cf
    • cemre.yuksel
    • peacemukke
    • sophiiistika
    • stephanleece
    • dogukano
    • 3b3ziz
    • or_yoffe_contentful
    • hennadii.shymanskyi
    • m.bensalem
    • sxagoraris
    • stathis.xagoraris
    • andreascful
    • richard_moran
    • yvesrijckaert_contentful
    • mehdi_contentful
    • georgpanok
    • riqwan.thahamir
    • piotr.ciazynski
    • felixboenke
    • farruco.sanjurjo
    • ronaldronson
    • silhoue
    • phbschmidt
    • timbeyer
    • kathrinholzmann
    • inbal.gordon
    • poberherr
    • mikita.savanovich
    • laurenceb
    • stupchiy
    • elblivion
    • fabianheymann
    • it-internal
    • sbezludny
    • medturki
    • danwe
    • marina-cf
    • dlitvakb
    • yann-cf
    • makinwa37
    • diacono
    • whydah-gally
    • tauraz
    • cakejelly
    • martin3walker
    • argvk_cf
    • yiotis
    • leonardofreitass
    • hwartig
    • davidfateh
    • dvasylenko
    • ruderngespra
    • janikomu
    • mshaaban0
    • kdamball
    • burakukula
    • gregferg
    • marcolink
    • gosiaszporer
    • miretxu
    • z0al
    • mspagnolo
    • thomas.spiesser
    • kbarnett
    • jwhiles
    • anho
    • didi96
    • fs
    • cgrabo
    • dana_grn
    • andipaetzold-cf
    • eva.martinez
    • lucabianconi
    • denkristoffer
    • luizfonseca
    • juliabiro
    • vinz93
    • jbourne
    • 0mathcrap
    • damienxy
    • roryscarson
    • m99coder-cf
    • loweisz
    • thomas.contentful
    • marceltoben
    • anwar.ahmad
    • massao
    • bohdan.hutsol
    • contentful-ecosystem
    • vida.momenzadeh
    • yuri.mazursky
    • rebecca.koenig
    • annmary