@contentful/eslint-config-backend

10.3.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/eslint-config-backend'
};

Note that also the notation @contentful/backend is supported by eslint as it will automatically add the prefix eslint-config-. However, we recommend the explicit notation to avoid confusion and make it easier to look up its usage across projects.

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.

Readme

Keywords

Package Sidebar

Install

npm i @contentful/eslint-config-backend

Weekly Downloads

799

Version

10.3.1

License

UNLICENSED

Unpacked Size

79.7 kB

Total Files

17

Last publish

Collaborators

  • eozelius
  • fisher-contentful
  • jonathanstoye
  • trburgess
  • 2wce
  • tnugmanov-contentful
  • primeinteger
  • david-shibley-contentful
  • jjolton_contentful
  • nealdavies
  • dkim-cf
  • t-col
  • chasepoirier
  • ryunsong-contentful
  • elylucas
  • fidanism
  • jsdalton
  • lewiscowper
  • rafafelix0
  • felixboenke
  • lillianbitner
  • mateojgordo
  • brettjackson
  • brnrossi
  • julija.a
  • doetter
  • jose.medrano
  • jonathan-contentful
  • georgechios.contentful
  • inbal.gordon
  • anwar.ahmad
  • ghepting
  • camposcontentful
  • benjaminrobertlees
  • whitelisab
  • mgoudy_contentful
  • marcopieatcontentful
  • jbcontentful
  • floriank
  • pkeavenycontentful
  • msieroslawska
  • miguelcrespo
  • chrishelgert
  • cdun.ctfl
  • asleepysamurai
  • budimir.budimir.cf
  • seth-carter-contentful
  • bhekanik
  • konstantinminster
  • invalid_json
  • douglasnsovenhi
  • dropecostareis
  • lorenzonibrunno
  • baskiers
  • dancontentful
  • ivo-contentful
  • thy.pham
  • adrian-contentful
  • alvinometric
  • dimitrycf
  • cormac.debarra
  • jites
  • nhanlon-cf
  • cbentham-cf
  • cempesket
  • jfctfl
  • nkoyo.ating
  • evgeniip
  • max.cheremisin
  • sofia_margariti
  • dineshswamy_paranthaman
  • dmytro.filippov
  • arjun-londhey
  • eric-miller2129
  • liamstokingercontentful
  • aodhagan-cf
  • vikaskumr
  • dennise917
  • alicankargin
  • cf-aleks
  • bvkr
  • ebctfl
  • sjouli
  • mayakarabula
  • cf-engit
  • harshil1712
  • paradoja
  • mattvanvoorst-contentful
  • holgerstorm
  • cf-remylenoir
  • mayagillilan
  • ahsen
  • mar.contentful
  • rowadz_contentful
  • 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
  • farruco.sanjurjo
  • ronaldronson
  • silhoue
  • phbschmidt
  • kathrinholzmann
  • poberherr
  • mikita.savanovich
  • laurenceb
  • elblivion
  • fabianheymann
  • it-internal
  • sbezludny
  • medturki
  • danwe
  • yann-cf
  • makinwa37
  • diacono
  • whydah-gally
  • tauraz
  • cakejelly
  • martin3walker
  • argvk_cf
  • yiotis
  • leonardofreitass
  • hwartig
  • davidfateh
  • dvasylenko
  • ruderngespra
  • mshaaban0
  • kdamball
  • marcolink
  • gosiaszporer
  • z0al
  • mspagnolo
  • thomas.spiesser
  • anho
  • didi96
  • fs
  • cgrabo
  • dana_grn
  • andipaetzold-cf
  • denkristoffer
  • luizfonseca
  • juliabiro
  • vinz93
  • jbourne
  • 0mathcrap
  • damienxy
  • roryscarson
  • m99coder-cf
  • loweisz
  • thomas.contentful
  • marceltoben
  • massao
  • bohdan.hutsol
  • contentful-ecosystem
  • vida.momenzadeh
  • yuri.mazursky
  • rebecca.koenig
  • annmary