diff --git a/docs/repo-docs/reference/eslint-config-turbo.mdx b/docs/repo-docs/reference/eslint-config-turbo.mdx index 5436633059c44..7c346025ef9f9 100644 --- a/docs/repo-docs/reference/eslint-config-turbo.mdx +++ b/docs/repo-docs/reference/eslint-config-turbo.mdx @@ -35,12 +35,60 @@ Install `eslint-config-turbo` into the location where your ESLint configuration -## Usage +## Usage (Flat Config `eslint.config.js`) -In your ESLint configuration file, add the package: +```js title="./packages/eslint-config/base.js" +import turboConfig from 'eslint-config-turbo/flat'; -```json title="./packages/config-eslint/index.js" +export default [ + ...turboConfig, + // Other configuration +]; +``` + +You can also configure rules available in the configuration: + +```js title="./packages/eslint-config/base.js" +import turboConfig from 'eslint-config-turbo/flat'; + +export default [ + ...turboConfig, + // Other configuration + { + rules: { + 'turbo/no-undeclared-env-vars': [ + 'error', + { + allowList: ['^ENV_[A-Z]+$'], + }, + ], + }, + }, +]; +``` + +## Usage (Legacy `eslintrc*`) + +Add `turbo` to the extends section of your eslint configuration file. You can omit the `eslint-config-` prefix: + +```json title="./packages/eslint-config/base.json" { "extends": ["turbo"] } ``` + +You can also configure rules available in the configuration: + +```json title="./packages/eslint-config/base.json" +{ + "plugins": ["turbo"], + "rules": { + "turbo/no-undeclared-env-vars": [ + "error", + { + "allowList": ["^ENV_[A-Z]+$"] + } + ] + } +} +``` diff --git a/docs/repo-docs/reference/eslint-plugin-turbo.mdx b/docs/repo-docs/reference/eslint-plugin-turbo.mdx new file mode 100644 index 0000000000000..2aecafc7a2868 --- /dev/null +++ b/docs/repo-docs/reference/eslint-plugin-turbo.mdx @@ -0,0 +1,121 @@ +--- +title: eslint-plugin-turbo +description: Learn more about eslint-plugin-turbo. +--- + +import { PackageManagerTabs, Tab } from '#/components/tabs'; + +[The `eslint-plugin-turbo` package](https://www.npmjs.com/package/eslint-plugin-turbo) helps you find environment variables that are used in your code that are not a part of Turborepo's hashing. Environment variables used in your source code that are not accounted for in `turbo.json` will be highlighted in your editor and errors will show as ESLint output. + +## Installation + +Install `eslint-config-turbo` into the location where your ESLint configuration is held: + + + + + ```bash title="Terminal" + npm i --save-dev eslint-config-turbo -w @acme/eslint-config + ``` + + + + + ```bash title="Terminal" + yarn workspace @acme/eslint-config add eslint-config-turbo --dev + ``` + + + + + ```bash title="Terminal" + pnpm add eslint-config-turbo --filter=@repo/eslint-config + ``` + + + + +## Usage (Flat Config `eslint.config.js`) + +ESLint v9 uses the Flat Config format seen below: + +```js title="./packages/eslint-config/base.js" +import turbo from 'eslint-plugin-turbo'; + +export default [turbo.configs['flat/recommended']]; +``` + +Otherwise, you may configure the rules you want to use under the rules section. + +```js title="./packages/eslint-config/base.js" +import turbo from 'eslint-plugin-turbo'; + +export default [ + { + plugins: { + turbo, + }, + rules: { + 'turbo/no-undeclared-env-vars': 'error', + }, + }, +]; +``` + +## Example (Flat Config `eslint.config.js`) + +```js title="./packages/eslint-config/base.js" +import turbo from 'eslint-plugin-turbo'; + +export default [ + { + plugins: { + turbo, + }, + rules: { + 'turbo/no-undeclared-env-vars': [ + 'error', + { + allowList: ['^ENV_[A-Z]+$'], + }, + ], + }, + }, +]; +``` + +## Usage (Legacy `eslintrc*`) + +Add `turbo` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix: + +```json title="./packages/eslint-config/base.json" +{ + "plugins": ["turbo"] +} +``` + +Then configure the rules you want to use under the rules section. + +```json title="./packages/eslint-config/base.json" +{ + "rules": { + "turbo/no-undeclared-env-vars": "error" + } +} +``` + +## Example (Legacy `eslintrc*`) + +```json title="./packages/eslint-config/base.json" +{ + "plugins": ["turbo"], + "rules": { + "turbo/no-undeclared-env-vars": [ + "error", + { + "allowList": ["^ENV_[A-Z]+$"] + } + ] + } +} +``` diff --git a/docs/repo-docs/reference/meta.json b/docs/repo-docs/reference/meta.json index bc3b9f0b1fae6..ddd0fee8ae96a 100644 --- a/docs/repo-docs/reference/meta.json +++ b/docs/repo-docs/reference/meta.json @@ -25,6 +25,7 @@ "---Packages---", "create-turbo", "eslint-config-turbo", + "eslint-plugin-turbo", "turbo-ignore", "turbo-codemod", "turbo-gen"