Skip to content
ESLint shareable config for XO
Branch: master
Clone or download
Latest commit 152ab8f Dec 12, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
test improve tests Sep 10, 2016
.editorconfig Meta tweaks Jul 20, 2017
.gitattributes Improve code style formatting Oct 10, 2018
.gitignore Meta tweaks Jul 20, 2017
.npmrc Meta tweaks Jul 20, 2017
.travis.yml Meta tweaks Dec 12, 2019
browser.js Disable some confusing browser globals (#58) Oct 18, 2019
esnext.js Enable the `prefer-object-spread` rule Nov 7, 2019
index.js Meta tweaks Dec 12, 2019
license Meta tweaks Jul 20, 2017
package.json Meta tweaks Dec 12, 2019 Meta tweaks Dec 12, 2019

eslint-config-xo Build Status

ESLint shareable config for XO

This is for advanced users. You probably want to use XO directly.

See eslint-plugin-unicorn for some additional useful rules.

Use the XO issue tracker instead of this one.


$ npm install --save-dev eslint-config-xo


Add some ESLint config to your package.json:

	"name": "my-awesome-project",
	"eslintConfig": {
		"extends": "xo"

Or to .eslintrc:

	"extends": "xo"

Supports parsing ES2015+, but doesn't enforce it by default.

This package also exposes xo/esnext if you want ES2015+ rules:

	"extends": "xo/esnext"

And xo/browser if you're in the browser:

	"extends": "xo/browser"

Use the XO CLI instead

XO is an ESLint wrapper with great defaults.

Here are some reason why you should use the XO CLI instead of this config:

  • XO comes bundled with this config.
  • Beautiful output.
  • Bundles many useful plugins, like eslint-plugin-unicorn, eslint-plugin-import, eslint-plugin-ava, and more.
  • No need to specify file paths to lint. It will lint all JS files except commonly ignored paths.
  • Super simple to add XO to a project with $ npm init xo.
  • Specify indent and semicolon preferences easily without messing with the rule config.
  • Config/rule overrides per files/globs. (ESLint still doesn't support this)
  • Can open all files with errors at the correct line in your editor. (See the --open flag)
  • The editor plugins are IMHO better than the ESLint ones. (Subjective)

tl;dr You miss out on a lot by just using this config.


You can’t perform that action at this time.