Skip to main content

@roots/bud-eslint

Eslint support can be added by installing the @roots/bud-eslint extension.

Installation

npm install @roots/bud-eslint --save-dev

Configuration

For general information on configuring eslint see the official Eslint user guide.

You can configure Stylelint in two ways:

Using an eslint config file

You can configure eslint using a eslint config file.

bud.js allows for you to write your eslint config in CommonJS, ESM, TypeScript, JSON or YML. This file should be placed in the root of your project or the project ./config directory.

eslint.config.js
export default {
extends: [`@roots/bud-eslint/config`],
rules: {'no-console': `error`},
}

Configuring eslint with bud.eslint

You can configure eslint directly in your bud.js config using the bud.eslint API.

bud.config.ts
bud.eslint
.extends([`@roots/eslint-config`])
.setRules({'no-console': `error`})
.setFailOnError(bud.isProduction)
.setFailOnWarning(false)
.setFix(true)

Extends

You can extend a eslint config by passing an array of eslint config files to bud.eslint.extends.

bud.config.ts
bud.eslint.extends([`@roots/bud-eslint/config`])

Rules

You can set eslint rules by passing an object to bud.eslint.setRules.

bud.config.ts
bud.eslint.setRules({'no-descending-specificity': null})

Fail on error

By default, eslint will fail on error in production mode. You can change this behavior by setting bud.eslint.failOnError to false.

bud.config.ts
bud.eslint.setFailOnError(false)

Fail on warning

By default, eslint will not fail on warning. You can change this behavior by setting bud.eslint.failOnWarning to true.

bud.config.ts
bud.eslint.setFailOnWarning(true)

Fix

By default, eslint will not fix errors. You can change this behavior by setting bud.eslint.fix to true.

bud.config.ts
bud.eslint.setFix(true)

There is a recommended eslint configuration available for you to use as a starting point.

npm install @roots/eslint-config --save-dev

Once installed you can add it to the extends array in your eslint config:

.eslintrc.cjs
module.exports = {
root: true,
extends: ['@roots/eslint-config'],
}