@contentful/eslint-config-backend

10.2.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.

Readme

Keywords

Package Sidebar

Install

npm i @contentful/eslint-config-backend

Weekly Downloads

7,033

Version

10.2.1

License

UNLICENSED

Unpacked Size

78.4 kB

Total Files

17

Last publish

Collaborators

  • 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