Skip to content

mixmaxhq/eslint-config-mixmax

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2c0791a · Feb 10, 2025
Feb 26, 2024
Nov 4, 2021
Nov 4, 2021
Apr 9, 2020
Nov 19, 2019
Feb 14, 2023
Nov 19, 2019
Aug 2, 2017
Feb 1, 2020
Aug 11, 2023
Nov 19, 2019
Feb 10, 2025
Mar 20, 2017
Mar 15, 2023
Mar 20, 2017
Jun 24, 2021
Feb 10, 2025
Feb 10, 2025
Aug 9, 2023

Repository files navigation

eslint-config-mixmax

This project defines a linter configuration that enforces healthy JS syntax. Later it should probably enforce our code styles (sorry for the private link, non-Mixmaxers) or those of a more established guide—see Roadmap).

Installing

npm install -D eslint-config-mixmax

Install this config's peer dependencies if you haven't already:

npm install -D "eslint@>=7.18.0"

Using browser config

If you'll be using the browser configs, make sure to install the following dependencies:

  • eslint-plugin-react
  • eslint-plugin-react-hooks
  • @babel/eslint-parser
npm install -D "eslint-plugin-react@^7.23.1" "@babel/eslint-parser@^10.0.2" "eslint-plugin-react-hooks@^4.2.0"

Using Flow config

If you'll be using the flow configs, make sure to install the optional eslint-plugin-flowtype and @babel/eslint-parser dependencies.

npm install -D "eslint-plugin-flowtype@^3.11.1" "@babel/eslint-parser@^10.0.2"

Usage

Create .eslintrc.json files like

{
  "extends": "<name of config below>"
}

in the appropriate directories: extend…

  • "mixmax/node", in directories containing Node.js code.
  • "mixmax/node/spec", in directories containing Node specs (assumed to be using Jasmine).
  • "mixmax/node/ava", in directories containing ava tests.
  • "mixmax/node/next", in projects using node 8 syntax (should also extend mixmax/node).
  • "mixmax/flow", in projects using flow for type checking (should also extend mixmax/node or mixmax/browser).
  • "mixmax/browser", in directories containing browser code. eslint-plugin-react is enabled in this configuration to allow for React-specific linting. Additionally, Backbone and $ are globalized so that their import statements are not required by the linter (though they should be - see TODOs in this configuration file).
  • "mixmax/browser/spec", in directories containing browser specs (assumed to be using Jasmine).

If you want you can extend the base configuration directly ("extends": "mixmax") but you shouldn't need to since the Node and browser configurations already extend that.

Publishing a new version

GH_TOKEN=xxx npx semantic-release --no-ci