Aller au contenu

Configuration

Permet de passer un chemin vers un fichier de schéma JSON.

Nous publions un schéma JSON pour le fichier biome.json.

Vous pouvez spécifier un chemin relatif vers le schéma du paquet npm @biomejs/biome si @biomejs/biome est installé dans le dossier node_modules :

biome.json
{
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json"
}

Si vous avez des problèmes avec la résolution du fichier sur disque, vous pouvez utiliser celui que nous publions sur notre site :

biome.json
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json"
}

Une liste de chemins vers d’autres fichiers JSON. Biome résoud et applique les options des fichiers contenus dans la liste extends, puis applique celles contenues dans le fichier biome.json.

La taille maximale autorisée pour les fichiers de code source, en octets. Les fichiers dépassant cette limite seront ignorés pour des questions de performance.

Valeur par défaut : 1048576 (1024*1024, 1 Mo)

Une liste de modèles de style de shell Unix. Biome ignore les fichiers et les dossiers qui correspondent à ces modèles.

biome.json
{
"files": {
"ignore": ["scripts/*.js"]
}
}

Une liste de modèles de style de shell Unix. Biome ne prend en charge que les fichiers et les dossiers qui correspondent à ces modèles.

biome.json
{
"files": {
"include": ["scripts/*.js"]
}
}

Soit l’exemple suivant :

biome.json
{
"files": {
"include": ["scripts/**/*.js", "src/**/*.js"],
"ignore": ["scripts/**/*.js"]
}
}

Seuls les fichiers correspondant au modèle src/**/*.js seront pris en charge, tandis que ceux correspondant au modèle scripts/**/*.js seront ignorés.

Biome n’engendrera pas de diagnostics s’il rencontre des fichiers qu’il ne peut pas prendre en charge.

biome.json
{
"files": {
"ignoreUnknown": true
}
}

Valeur par défaut : false

Ensemble de propriétés pour intégrer Biome à un VCS (logiciel de contrôle de versions, Version Control Software).

Si Biome devrait s’intégrer au client VCS ou non.

Valeur par défaut : false

Le type de client.

Valeurs :

  • "git"

Si Biome devrait utiliser le fichier ignore du VCS ou non. Si true, Biome ignorera les fichiers spécifiés dans le fichier ignore.

Le dossier où Biome devrait vérifier les fichiers du VCS. Par défaut, Biome utilisera le même dossier où biome.json a été trouvé.

Si Biome ne peut pas trouver la configuration, il tentera d’utiliser le répertoire de l’espace de travail actuel. Si aucun répertoire de l’espace de travail actuel ne peut être trouvé, Biome n’utilisera pas l’intégration au VCS et un diagnostic sera généré.

La branche principale du projet. Biome utilisera cette branche quand il évaluera les fichiers modifiés.

Active l’outil de linting de Biome.

Valeur par défaut : true

Un tableau de modèles de style de shell Unix.

biome.json
{
"linter": {
"ignore": ["scripts/*.js"]
}
}

Une liste de modèles de style de shell Unix. Biome ne prend en charge que les fichiers et les dossiers qui correspondent à ces modèles.

biome.json
{
"linter": {
"include": ["scripts/*.js"]
}
}

Soit l’exemple suivant :

biome.json
{
"linter": {
"include": ["scripts/**/*.js", "src/**/*.js"],
"ignore": ["scripts/**/*.js"]
}
}

Seuls les fichiers correspondant au modèle src/**/*.js seront analysés, tandis que ceux correspondant au modèle scripts/**/*.js seront ignorés.

Active les règles recommandées pour tous les groupes.

Valeur par défaut : true

Active ou désactive toutes les règles pour tous les groupes.

Si recommended et all sont en même temps à true, Biome engendrera un diagnostic et se repliera sur ses réglages par défaut.

biome.json
{
"linter": {
"enabled": true,
"rules": {
"all": true
}
}
}

Il est également possible de combiner ce drapeau pour activer/désactiver différents groupes de règles :

biome.json
{
"linter": {
"enabled": true,
"rules": {
"all": true,
"style": {
"all": false
},
"complexity": {
"all": false
}
}
}
}

Dans l’exemple précédent, Biome activera toutes les règles, à l’exception de celles appartenant aux groupes style et complexity.

Options qui influencent les règles d’un seul groupe. Biome prend en charge les groupes suivants :

  • accessibility: Rules focused on preventing accessibility problems.
  • complexity: Rules that focus on inspecting complex code that could be simplified.
  • correctness: Rules that detect code that is guaranteed to be incorrect or useless.
  • nursery: New rules that are still under development. Nursery rules require explicit opt-in via configuration on stable versions because they may still have bugs or performance problems. They are enabled by default on nightly builds, but as they are unstable their diagnostic severity may be set to either error or warning, depending on whether we intend for the rule to be recommended or not when it eventually gets stabilized. Nursery rules get promoted to other groups once they become stable or may be removed. Rules that belong to this group are not subject to semantic version.
  • performance: Rules catching ways your code could be written to run faster, or generally be more efficient.
  • security: Rules that detect potential security flaws.
  • style: Rules enforcing a consistent and idiomatic way of writing your code.
  • suspicious: Rules that detect code that is likely to be incorrect or useless.
  • linter.rules.[groupe].recommended

    Section titled linter.rules.[groupe].recommended

    Active les règles recommandées pour un seul groupe.

    Exemple :

    biome.json
    {
    "linter": {
    "enabled": true,
    "rules": {
    "nursery": {
    "recommended": true
    }
    }
    }
    }

    Active toutes les règles pour un seul groupe.

    Exemple :

    biome.json
    {
    "linter": {
    "enabled": true,
    "rules": {
    "nursery": {
    "all": true
    }
    }
    }
    }

    Ces options s’appliquent à tous les langages. Plus loin, il y a des options de formatage supplémentaires propres à un langage.

    Active l’outil de formatage de Biome.

    Valeur par défaut : true

    Un tableau de modèles de style de shell Unix.

    biome.json
    {
    "formatter": {
    "ignore": ["scripts/*.js"]
    }
    }

    Une liste de modèles de style de shell Unix. Biome ne prend en charge que les fichiers et les dossiers qui correspondent à ces modèles.

    biome.json
    {
    "formatter": {
    "include": ["scripts/*.js"]
    }
    }

    Soit l’exemple suivant :

    biome.json
    {
    "formatter": {
    "include": ["scripts/**/*.js", "src/**/*.js"],
    "ignore": ["scripts/**/*.js"]
    }
    }

    Seuls les fichiers correspondant au modèle src/**/*.js seront formatés, tandis que ceux correspondant au modèle scripts/**/*.js seront ignorés.

    Permet de formater un document comportant des erreurs de syntaxe.

    biome.json
    {
    "formatter": {
    "formatWithErrors": true
    }
    }

    Valeur par défaut : false

    Le style d’indentation. La valeur peut être "tab" ou "space".

    Valeur par défaut : "tab"

    Cette option est obsolète, veuillez utiliser formatter.indentWidth à la place.

    Obsolète

    Quelle devrait être la largeur de l’indentation.

    Valeur par défaut : 2

    Quelle devrait être la largeur de l’indentation.

    Valeur par défaut : 2

    Le type de fin de ligne :

    • "lf" : caractère de retour à la ligne seulement (\n), courant sur Linux et macOS, ainsi que dans les dépôts git ;
    • "crlf" : caractère de retour chariot + caractère de retour à la ligne (\r\n), courant sur Windows ;
    • "cr" : caractère de retour chariot seulement (\r), très rarement utilisé.

    Valeur par défaut : "lf"

    Combien de caractères peuvent être écrits sur une seule ligne.

    Valeur par défaut : 80

    Le style de positionnement d’un attribut dans les langages HTML et assimilés :

    • "auto" : les attributs sont automatiquement formatés et ne se répartiront en plusieurs lignes que s’ils répondent à certains critères ;
    • "multiline" : les attributs sont toujours formatés en plusieurs lignes, quoi qu’il en soit.

    Valeur par défaut : "auto"

    Si Biome devrait utiliser le fichier .editorconfig pour déterminer les options de formatage ou non. Si true, les options applicables dans le fichier .editorconfig seront utilisées ; mais, toute configuration dans le fichier biome.json sera toujours prioritaire.

    En migrant depuis Prettier avec biome migrate, cette option est définie à true pour se conformer au comportement de Prettier.

    Valeur par défaut : false

    Active le tri des imports par Biome.

    Valeur par défaut : true

    Une liste de modèles de style de shell Unix. Biome ignore les fichiers et les dossiers qui correspondent à ces modèles.

    biome.json
    {
    "organizeImports": {
    "ignore": ["scripts/*.js"]
    }
    }

    Une liste de modèles de style de shell Unix. Biome ne prend en charge que les fichiers et les dossiers qui correspondent à ces modèles.

    biome.json
    {
    "organizeImports": {
    "include": ["scripts/*.js"]
    }
    }

    Soit l’exemple suivant :

    biome.json
    {
    "organizeImports": {
    "include": ["scripts/**/*.js", "src/**/*.js"],
    "ignore": ["scripts/**/*.js"]
    }
    }

    Seuls les fichiers correspondant au modèle src/**/*.js verront leurs imports triés, tandis que ceux correspondant au modèle scripts/**/*.js seront ignorés.

    Ces options ne s’appliquent qu’aux fichiers JavaScript (et TypeScript).

    javascript.parser.unsafeParameterDecoratorsEnabled

    Section titled javascript.parser.unsafeParameterDecoratorsEnabled

    Permet la prise en charge des décorateurs de paramètre non sûrs/expérimentaux.

    biome.json
    {
    "javascript": {
    "parser": {
    "unsafeParameterDecoratorsEnabled": true
    }
    }
    }

    Valeur par défaut : false

    javascript.formatter.quoteStyle

    Section titled javascript.formatter.quoteStyle

    Le type de guillemets utilisé pour représenter les littéraux de chaîne. La valeur peut être "single" ou "double".

    Valeur par défaut : "double"

    javascript.formatter.jsxQuoteStyle

    Section titled javascript.formatter.jsxQuoteStyle

    Le type de guillemets utilisé pour représenter les littéraux de chaîne JSX. La valeur peut être "single" ou "double".

    Valeur par défaut : "double"

    javascript.formatter.quoteProperties

    Section titled javascript.formatter.quoteProperties

    Quand les propriétés d’objet devraient être entourées de guillemets. La valeur peut être "asNeeded" ou "preserve".

    Valeur par défaut : "asNeeded"

    javascript.formatter.trailingComma

    Section titled javascript.formatter.trailingComma

    Cette option est obsolète, veuillez utiliser javascript.formatter.trailingCommas à la place.

    Obsolète

    Ajoute si possible des virgules de fin dans les structures syntaxiques séparées par des virgules et réparties sur plusieurs lignes. Valeurs possibles :

    • "all" : la virgule de fin est toujours ajoutée ;
    • "es5" : la virgule de fin n’est ajoutée qu’aux endroits où elle est prise en charge par les anciennes versions de JavaScript ;
    • "none" : les virgules de fin ne sont jamais ajoutées.

    Valeur par défaut : "all"

    javascript.formatter.trailingCommas

    Section titled javascript.formatter.trailingCommas

    Ajoute si possible des virgules de fin dans les structures syntaxiques séparées par des virgules et réparties sur plusieurs lignes. Valeurs possibles :

    • "all" : la virgule de fin est toujours ajoutée ;
    • "es5" : la virgule de fin n’est ajoutée qu’aux endroits où elle est prise en charge par les anciennes versions de JavaScript ;
    • "none" : les virgules de fin ne sont jamais ajoutées.

    Valeur par défaut : "all"

    javascript.formatter.semicolons

    Section titled javascript.formatter.semicolons

    Configure l’endroit où l’outil de formatage insère les points-virgules :

    • "always" : les points-virgules sont toujours ajoutés à la fin de chaque instruction ;
    • "asNeeded" : les points-virgules ne sont ajoutés qu’aux endroits où ils sont nécessaires, pour protéger le code de l’insertion automatique de points-virgules.

    Valeur par défaut : "always"

    Exemple :

    biome.json
    {
    "javascript": {
    "formatter": {
    "semicolons": "asNeeded"
    }
    }
    }

    javascript.formatter.arrowParentheses

    Section titled javascript.formatter.arrowParentheses

    S’il faut ajouter ou non des parenthèses non nécessaires aux fonctions fléchées :

    • "always" : les parenthèses sont toujours ajoutées ;
    • "asNeeded" : les parenthèses ne sont ajoutées que si elles sont nécessaires.

    Valeur par défaut : "always"

    Active l’outil de formatage de Biome pour les fichiers JavaScript (et ses super-langages).

    Valeur par défaut : true

    javascript.formatter.indentStyle

    Section titled javascript.formatter.indentStyle

    Le style d’indentation pour les fichiers JavaScript (et ses super-langages). La valeur peut être "tab" ou "space".

    Valeur par défaut : "tab"

    javascript.formatter.indentSize

    Section titled javascript.formatter.indentSize

    Cette option est obsolète, veuillez utiliser javascript.formatter.indentWidth à la place.

    Obsolète

    Quelle devrait être la largeur de l’indentation pour les fichiers JavaScript (et ses super-langages).

    Valeur par défaut : 2

    javascript.formatter.indentWidth

    Section titled javascript.formatter.indentWidth

    Quelle devrait être la largeur de l’indentation pour les fichiers JavaScript (et ses super-langages).

    Valeur par défaut : 2

    javascript.formatter.lineEnding

    Section titled javascript.formatter.lineEnding

    Le type de fin de ligne pour les fichiers JavaScript (et ses super-langages) :

    • "lf" : caractère de retour à la ligne seulement (\n), courant sur Linux et macOS, ainsi que dans les dépôts git ;
    • "crlf" : caractère de retour chariot + caractère de retour à la ligne (\r\n), courant sur Windows ;
    • "cr" : caractère de retour chariot seulement (\r), très rarement utilisé.

    Valeur par défaut : "lf"

    javascript.formatter.lineWidth

    Section titled javascript.formatter.lineWidth

    Combien de caractères peuvent être écrits sur une seule ligne dans les fichiers JavaScript (et ses super-langages).

    Valeur par défaut : 80

    javascript.formatter.bracketSameLine

    Section titled javascript.formatter.bracketSameLine

    Détermine si le > de fin d’un élément JSX écrit sur plusieurs lignes devrait être sur la ligne du dernier attribut ou non.

    Valeur par défaut : false

    javascript.formatter.bracketSpacing

    Section titled javascript.formatter.bracketSpacing

    Détermine si les espaces devraient être ajoutés ou non entre les accolades et les valeurs à l’intérieur de ces dernières.

    Valeur par défaut : true

    javascript.formatter.attributePosition

    Section titled javascript.formatter.attributePosition

    Le style de positionnement d’un attribut dans les éléments JSX.

    • "auto" : les attributs sont automatiquement formatés et ne se répartiront en plusieurs lignes que s’ils répondent à certains critères ;
    • "multiline" : les attributs sont toujours formatés en plusieurs lignes, quoi qu’il en soit.

    Valeur par défaut : "auto"

    Une liste de noms globaux que Biome devrait ignorer (analyzer, linter, etc.).

    biome.json
    {
    "javascript": {
    "globals": ["$", "_", "externalVariable"]
    }
    }

    Indique le type d’environnement d’exécution ou de transformation utilisé pour interpréter le JSX.

    • "transparent" : indique un environment JSX moderne ou natif, qui ne requiert pas de prise en charge spéciale par Biome ;
    • "reactClassic" : indique un environment React classique qui requiert l’import React, correspond à la valeur react de l’option jsx dans le tsconfig.json de TypeScript.
    biome.json
    {
    "javascript": {
    "jsxRuntime": "reactClassic"
    }
    }

    Pour plus de renseignements sur les environnements d’exécution JSX anciens et nouveaux, veuillez consulter : https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html

    Valeur par défaut : "transparent"

    Active l’outil de linting de Biome pour les fichiers JavaScript (et ses super-langages).

    Valeur par défaut : true

    Options appliquées aux fichiers JSON.

    Active l’analyse des commentaires dans les fichiers JSON.

    biome.json
    {
    "json": {
    "parser": {
    "allowComments": true
    }
    }
    }

    json.parser.allowTrailingCommas

    Section titled json.parser.allowTrailingCommas

    Active l’analyse des virgules de fin dans les fichiers JSON.

    biome.json
    {
    "json": {
    "parser": {
    "allowTrailingCommas": true
    }
    }
    }

    Active l’outil de formatage de Biome pour les fichiers JSON (et ses super-langages).

    Valeur par défaut : true

    Le style d’indentation pour les fichiers JSON (et ses super-langages). La valeur peut être "tab" ou "space".

    Valeur par défaut : "tab"

    Cette option est obsolète, veuillez utiliser json.formatter.indentWidth à la place.

    Obsolète

    Quelle devrait être la largeur de l’indentation pour les fichiers JSON (et ses super-langages).

    Valeur par défaut : 2

    Quelle devrait être la largeur de l’indentation pour les fichiers JSON (et ses super-langages).

    Valeur par défaut : 2

    Le type de fin de ligne pour les fichiers JSON (et ses super-langages).

    • "lf" : caractère de retour à la ligne seulement (\n), courant sur Linux et macOS, ainsi que dans les dépôts git ;
    • "crlf" : caractère de retour chariot + caractère de retour à la ligne (\r\n), courant sur Windows ;
    • "cr" : caractère de retour chariot seulement (\r), très rarement utilisé.

    Valeur par défaut : "lf"

    Combien de caractères peuvent être écrits sur une seule ligne dans les fichiers JSON (et ses super-langages).

    Valeur par défaut : 80

    Ajoute si possible des virgules de fin dans les structures syntaxiques séparées par des virgules et réparties sur plusieurs lignes.

    Valeurs possibles :

    • "none" : la virgule de fin est supprimée ;
    • "all" : la virgule de fin est préservée et préférée.

    Valeur par défaut : "none"

    Active l’outil de linting de Biome pour les fichiers JSON (et ses super-langages).

    Valeur par défaut : true

    Options appliquées aux fichiers CSS.

    Active l’analyse des modules CSS.

    Valeur par défaut : false

    Active l’outil de formatage de Biome pour les fichiers CSS (et ses super-langages).

    Valeur par défaut : false

    Le style d’indentation pour les fichiers CSS (et ses super-langages). La valeur peut être "tab" ou "space".

    Valeur par défaut : "tab"

    Quelle devrait être la largeur de l’indentation pour les fichiers CSS (et ses super-langages).

    Valeur par défaut : 2

    Le type de fin de ligne pour les fichiers CSS (et ses super-langages).

    • "lf" : caractère de retour à la ligne seulement (\n), courant sur Linux et macOS, ainsi que dans les dépôts git ;
    • "crlf" : caractère de retour chariot + caractère de retour à la ligne (\r\n), courant sur Windows ;
    • "cr" : caractère de retour chariot seulement (\r), très rarement utilisé.

    Valeur par défaut : "lf"

    Combien de caractères peuvent être écrits sur une seule ligne dans les fichiers CSS (et ses super-langages).

    Valeur par défaut : 80

    Le type de guillemets utilisé pour représenter les littéraux de chaîne. La valeur peut être "single" ou "double".

    Valeur par défaut : "double"

    Active l’outil de linting de Biome pour les fichiers CSS (et ses super-langages).

    Valeur par défaut : false

    Une liste de modèles.

    Utilisez cette configuration pour modifier le comportement des outils pour certains fichiers.

    Quand un fichier correspond à un modèle d’écrasement, la configuration spécifiée dans ce modèle écrasera la configuration du premier niveau.

    L’ordre des modèles a son importance. Si un fichier peut correspondre à trois modèles, seul le premier est utilisé.

    Une liste de modèles de style de shell Unix. Biome ne fera pas appliquer l’écrasement aux fichiers correspondant au modèle.

    biome.json
    {
    "overrides": [{
    "ignore": ["scripts/*.js"]
    }]
    }

    Une liste de modèles de style de shell Unix. Biome ne fera appliquer l’écrasement qu’aux fichiers correspondant au modèle.

    biome.json
    {
    "overrides": [{
    "include": ["scripts/*.js"]
    }]
    }

    Inclura les options de configuration de formatage du premier niveau, moins ignore et include.

    Par exemple, il est possible de modifier le formatage de lineWidth : indentStyle pour certains fichiers qui sont inclus dans le glob generated/** :

    biome.json
    {
    "formatter": {
    "lineWidth": 100
    },
    "overrides": [
    {
    "include": ["generated/**"],
    "formatter": {
    "lineWidth": 160,
    "indentStyle": "space"
    }
    }
    ]
    }

    Inclura les options de configuration de linting de premier niveau, moins ignore et include.

    Vous pouvez désactiver certaines règles pour certains globs et désactiver le linting pour d’autres globs :

    biome.json
    {
    "linter": {
    "enabled": true,
    "rules": {
    "recommended": true
    }
    },
    "overrides": [
    {
    "include": ["lib/**"],
    "linter": {
    "rules": {
    "suspicious": {
    "noDebugger": "off"
    }
    }
    }
    },
    {
    "include": ["shims/**"],
    "linter": {
    "enabled": false
    }
    }
    ]
    }

    Inclura les options d’organisation des imports de premier niveau, moins ignore et include.

    Inclura les options de configuration de JavaScript de premier niveau.

    Vous pouvez modifier le comportement du formatage des fichiers JavaScript dans certains dossiers :

    biome.json
    {
    "formatter": {
    "lineWidth": 120
    },
    "javascript": {
    "formatter": {
    "quoteStyle": "single"
    }
    },
    "overrides": [
    {
    "include": ["lib/**"],
    "javascript": {
    "formatter": {
    "quoteStyle": "double"
    }
    }
    }
    ]
    }

    Inclura les options de configuration de JSON de premier niveau.

    Vous pouvez activer les fonctionnalités d’analyse pour certains fichiers JSON :

    biome.json
    {
    "linter": {
    "enabled": true,
    "rules": {
    "recommended": true
    }
    },
    "overrides": [
    {
    "include": [".vscode/**"],
    "json": {
    "parser": {
    "allowComments": true,
    "allowTrailingCommas": true
    }
    }
    }
    ]
    }