Configuración
$schema
Section titled $schemaPermite pasar una ruta a un archivo de esquema JSON.
Publicamos un archivo de esquema JSON para el biome.json
.
Puedes especificar una ruta relativa al esquema del paquete npm @biomejs/biome
si @biomejs/biome
está instalado en la carpeta node_modules
:
{ "$schema": "./node_modules/@biomejs/biome/configuration_schema.json"}
Si tiene problemas para resolver el archivo físico, puede utilizar el publicado en este sitio:
{ "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json"}
extends
Section titled extendsUna lista de rutas a otros archivos JSON. Biome resuelve y aplica las opciones de los archivos contenidos en la lista extends
, y finalmente aplica las opciones contenidas en el archivo biome.json
.
files
Section titled filesfiles.maxSize
Section titled files.maxSizeEl tamaño máximo permitido para los archivos de código fuente en bytes. Los archivos que superen este límite serán ignorados por razones de rendimiento.
Por defecto:
1048576
(1024*1024, 1MB)
files.ignore
Section titled files.ignoreUna lista de patrones de estilo shell de Unix. Biome ignora los archivos y carpetas que coinciden con estos patrones.
{ "files": { "ignore": ["scripts/*.js"] }}
files.include
Section titled files.includeUna lista de patrones de estilo shell de Unix. Biome sólo gestiona los archivos y carpetas que coinciden con estos patrones.
{ "files": { "include": ["scripts/*.js"] }}
Dado el siguiente ejemplo:
{ "files": { "include": ["scripts/**/*.js", "src/**/*.js"], "ignore": ["scripts/**/*.js"] }}
Sólo se tratarán los archivos que coincidan con el patrón src/**/*.js
, mientras que se ignorarán los archivos que coincidan con el patrón
scripts/**/*.js
.
files.ignoreUnknown
Section titled files.ignoreUnknownBiome no emitirá diagnósticos si encuentra archivos que no puede manejar.
{ "files": { "ignoreUnknown": true }}
Por defecto:
false
Conjunto de propiedades para integrar Biome con un VCS (Version Control Software).
vcs.enabled
Section titled vcs.enabledSi Biome debe integrarse con el cliente VCS
Por defecto:
false
vcs.clientKind
Section titled vcs.clientKindEl tipo de cliente.
Valores:
"git"
vcs.useIgnoreFile
Section titled vcs.useIgnoreFileSi Biome debe utilizar el archivo de ignorar VCS. Si es true
, Biome ignorará los archivos
especificados en el archivo de ignorar.
vcs.root
Section titled vcs.rootLa carpeta en la que Biome debe buscar los archivos VCS. Por defecto, Biome utilizará la misma carpeta
en la que se encontró biome.json
.
Si Biome no puede encontrar la configuración, intentará utilizar el directorio de trabajo actual. Si no se encuentra el directorio de trabajo actual, Biome no utilizará la integración VCS y se emitirá un mensaje de diagnóstico
vcs.defaultBranch
Section titled vcs.defaultBranchLa rama principal del proyecto. Biome utilizará esta rama al evaluar los archivos modificados.
linter
Section titled linterlinter.enabled
Section titled linter.enabledActiva el linter de Biome
Por defecto:
true
linter.ignore
Section titled linter.ignoreUn conjunto de patrones de estilo shell Unix.
{ "linter": { "ignore": ["scripts/*.js"] }}
linter.include
Section titled linter.includeUna lista de patrones de estilo shell de Unix. Biome sólo gestiona los archivos y carpetas que coinciden con estos patrones.
{ "linter": { "include": ["scripts/*.js"] }}
Dado el siguiente ejemplo:
{ "linter": { "include": ["scripts/**/*.js", "src/**/*.js"], "ignore": ["scripts/**/*.js"] }}
Sólo los archivos que coincidan con el patrón src/**/*.js
serán lintados, mientras que los archivos que coincidan con el patrón
scripts/**/*.js
serán ignorados.
linter.rules.recommended
Section titled linter.rules.recommendedActiva las reglas recomendadas para todos los grupos.
Por defecto:
true
linter.rules.all
Section titled linter.rules.allActivar o desactivar todas las reglas para todos los grupos.
Si recommended
y all
son ambos true
, Biome emitirá un diagnóstico y volverá a sus valores por defecto.
{ "linter": { "enabled": true, "rules": { "all": true } }}
También es posible combinar esta bandera para activar/desactivar diferentes grupos de reglas:
{ "linter": { "enabled": true, "rules": { "all": true, "style": { "all": false }, "complexity": { "all": false } } }}
En el ejemplo anterior, Biome activará todas las reglas, excepto las que pertenezcan a los grupos style
y complexity
.
linter.rules.[group]
Section titled linter.rules.[group]Opciones que influyen en las reglas de un solo grupo. Biome admite los siguientes grupos:
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.[group].recommended
Section titled linter.rules.[group].recommendedActiva las reglas recomendadas para un solo grupo.
Ejemplo:
{ "linter": { "enabled": true, "rules": { "nursery": { "recommended": true } } }}
linter.rules.[group].all
Section titled linter.rules.[group].allActiva todas las reglas de un mismo grupo.
Ejemplo:
{ "linter": { "enabled": true, "rules": { "nursery": { "all": true } } }}
formatter
Section titled formatterEstas opciones se aplican a todos los idiomas. A continuación encontrarás otras opciones de formato específicas para cada idioma.
formatter.enabled
Section titled formatter.enabledActiva el formateador de Biome
Por defecto:
true
formatter.ignore
Section titled formatter.ignoreUn conjunto de patrones de estilo shell Unix.
{ "formatter": { "ignore": ["scripts/*.js"] }}
formatter.include
Section titled formatter.includeUna lista de patrones de estilo shell de Unix. Biome sólo gestiona los archivos y carpetas que coinciden con estos patrones.
{ "formatter": { "include": ["scripts/*.js"] }}
Dado el siguiente ejemplo:
{ "formatter": { "include": ["scripts/**/*.js", "src/**/*.js"], "ignore": ["scripts/**/*.js"] }}
Sólo se formatearán los archivos que coincidan con el patrón src/**/*.js
, mientras que se ignorarán los archivos que coincidan con el patrón
scripts/**/*.js
.
formatter.formatWithErrors
Section titled formatter.formatWithErrorsPermite dar formato a un documento que tiene errores de sintaxis.
{ "formatter": { "formatWithErrors": true }}
Por defecto:
false
formatter.indentStyle
Section titled formatter.indentStyleEl estilo de la sangría. Puede ser "tab"
o "space"
.
Por defecto:
"tab"
formatter.indentSize
Section titled formatter.indentSizeEsta opción está obsoleta, utiliza formatter.indentWidth
en su lugar.
Obsoleto
El tamaño de la sangría.
Por defecto:
2
formatter.indentWidth
Section titled formatter.indentWidthEl tamaño de la sangría.
Por defecto:
2
formatter.lineEnding
Section titled formatter.lineEndingEl tipo de final de línea.
"lf"
, Line Feed only (\n
), común en Linux y macOS así como dentro de repositorios git;"crlf"
, Caracteres de retorno de carro + salto de línea (\r\n
), comunes en Windows;"cr"
, Carácter de retorno de carro solamente (\r
), utilizado muy raramente.
Por defecto:
"lf"
formatter.lineWidth
Section titled formatter.lineWidthCuántos caracteres pueden escribirse en una sola línea.
Por defecto:
80
formatter.attributePosition
Section titled formatter.attributePositionEl estilo de posición de atributos en lenguajes HTMLish.
"auto"
, los atributos se formatean automáticamente, y se contraerán en varias líneas sólo cuando cumplan determinados criterios;"multiline"
, los atributos se contraerán en varias líneas si se utiliza más de 1 atributo.
Por defecto:
"auto"
formatter.useEditorconfig
Section titled formatter.useEditorconfigSi Biome debe utilizar el archivo .editorconfig
para determinar las opciones de formato. Si es true
, se utilizarán las opciones aplicables del archivo .editorconfig
, pero cualquier configuración del archivo biome.json
seguirá teniendo prioridad.
Al migrar desde Prettier con biome migrate
, esta opción se establece en true
para que coincida con el comportamiento de Prettier.
Por defecto:
false
organizeImports
Section titled organizeImportsorganizeImports.enabled
Section titled organizeImports.enabledActiva las importaciones de ordenación de Biome.
Por defecto:
true
organizeImports.ignore
Section titled organizeImports.ignoreUna lista de patrones de estilo shell de Unix. Biome ignora los archivos y carpetas que coinciden con estos patrones.
{ "organizeImports": { "ignore": ["scripts/*.js"] }}
organizeImports.include
Section titled organizeImports.includeUna lista de patrones de estilo shell de Unix. Biome sólo gestiona los archivos y carpetas que coinciden con estos patrones.
{ "organizeImports": { "include": ["scripts/*.js"] }}
Dado el siguiente ejemplo:
{ "organizeImports": { "include": ["scripts/**/*.js", "src/**/*.js"], "ignore": ["scripts/**/*.js"] }}
Sólo los archivos que coincidan con el patrón src/**/*.js
tendrán sus importaciones ordenadas, mientras que los archivos que coincidan con el patrón
scripts/**/*.js
serán ignorados.
javascript
Section titled javascriptEstas opciones sólo se aplican a los archivos JavaScript (y TypeScript).
javascript.parser.unsafeParameterDecoratorsEnabled
Section titled javascript.parser.unsafeParameterDecoratorsEnabledPermite soportar los decoradores de parámetros inseguros/experimentales.
{ "javascript": { "parser": { "unsafeParameterDecoratorsEnabled": true } }}
Por defecto:
false
javascript.formatter.quoteStyle
Section titled javascript.formatter.quoteStyleEl tipo de comilla utilizado al representar literales de cadena. Puede ser "single"
o "double"
.
Por defecto:
"double"
javascript.formatter.jsxQuoteStyle
Section titled javascript.formatter.jsxQuoteStyleEl tipo de comilla utilizado cuando se representan literales de cadena jsx. Puede ser "single"
o "double"
.
Por defecto:
"double"
javascript.formatter.quoteProperties
Section titled javascript.formatter.quotePropertiesCuando las propiedades dentro de los objetos deben ser entrecomilladas. Puede ser "asNeeded"
o "preserve"
.
Por defecto:
"asNeeded"
javascript.formatter.trailingComma
Section titled javascript.formatter.trailingCommaEsta opción está obsoleta, utilice javascript.formatter.trailingCommas
en su lugar.
Obsoleto
Imprime comas finales siempre que sea posible en estructuras sintácticas de varias líneas separadas por comas. Valores posibles:
"all"
, siempre se añade la coma final;"es5"
, la coma final sólo se añade en los lugares en los que es compatible con versiones anteriores de JavaScript;"none"
, nunca se añaden comas finales.
Por defecto:
"all"
javascript.formatter.trailingCommas
Section titled javascript.formatter.trailingCommasImprime comas finales siempre que sea posible en estructuras sintácticas de varias líneas separadas por comas. Valores posibles:
"all"
, siempre se añade la coma final;"es5"
, la coma final sólo se añade en los lugares en los que es compatible con versiones anteriores de JavaScript;"none"
, nunca se añaden comas finales.
Por defecto:
"all"
javascript.formatter.semicolons
Section titled javascript.formatter.semicolonsConfigura dónde imprime el formateador el punto y coma:
"always"
, el punto y coma se añade siempre al final de cada declaración;"asNeeded"
, el punto y coma se añade sólo en los lugares donde es necesario, para proteger de ASI.
Por defecto:
"always"
Ejemplo:
{ "javascript": { "formatter": { "semicolons": "asNeeded" } }}
javascript.formatter.arrowParentheses
Section titled javascript.formatter.arrowParenthesesSi se añaden paréntesis no necesarios a las funciones de flecha:
"always"
, siempre se añaden los paréntesis;"asNeeded"
, los paréntesis se añaden sólo cuando son necesarios.
Por defecto:
"always"
javascript.formatter.enabled
Section titled javascript.formatter.enabledActiva el formateador de Biome para archivos JavaScript (y sus super lenguajes).
Por defecto:
true
javascript.formatter.indentStyle
Section titled javascript.formatter.indentStyleEl estilo de la sangría para archivos JavaScript (y sus super lenguajes). Puede ser "tab"
o "space"
.
Por defecto:
"tab"
javascript.formatter.indentSize
Section titled javascript.formatter.indentSizeEsta opción está obsoleta, utiliza javascript.formatter.indentWidth
en su lugar.
Obsoleto
Qué tamaño debe tener la sangría para los archivos JavaScript (y sus super lenguajes).
Por defecto:
2
javascript.formatter.indentWidth
Section titled javascript.formatter.indentWidthQué tamaño debe tener la sangría para los archivos JavaScript (y sus super lenguajes).
Por defecto:
2
javascript.formatter.lineEnding
Section titled javascript.formatter.lineEndingEl tipo de final de línea para archivos JavaScript (y sus super lenguajes).
"lf"
, Line Feed only (\n
), común en Linux y macOS así como dentro de repositorios git;"crlf"
, Caracteres de retorno de carro + salto de línea (\r\n
), comunes en Windows;"cr"
, Carácter de retorno de carro solamente (\r
), utilizado muy raramente.
Por defecto:
"lf"
javascript.formatter.lineWidth
Section titled javascript.formatter.lineWidthCuántos caracteres pueden escribirse en una sola línea en los archivos JavaScript (y sus superlenguajes).
Por defecto:
80
javascript.formatter.bracketSameLine
Section titled javascript.formatter.bracketSameLineElija si el final >
de un elemento JSX multilínea debe estar en la última línea de atributos o no
Por defecto:
false
javascript.formatter.bracketSpacing
Section titled javascript.formatter.bracketSpacingElige si se deben añadir espacios entre paréntesis y valores interiores
Por defecto:
true
javascript.formatter.attributePosition
Section titled javascript.formatter.attributePositionEl atributo estilo de posición en elementos jsx.
"auto"
, no imponen un único atributo por línea."multiline"
, aplicar un único atributo por línea.
Por defecto:
"auto"
javascript.globals
Section titled javascript.globalsUna lista de nombres globales que Biome debe ignorar (analizador, linter, etc.)
{ "javascript": { "globals": ["$", "_", "externalVariable"] }}
javascript.jsxRuntime
Section titled javascript.jsxRuntimeIndica el tipo de tiempo de ejecución o transformación utilizado para interpretar JSX.
"transparent"
— Indica un entorno JSX moderno o nativo, que no requiere un manejo especial por parte de Biome."reactClassic"
— Indica un entorno React clásico que requiere la importaciónReact
. Corresponde al valorreact
de la opciónjsx
de en [tsconfig.json
] de TypeScript (https://www.typescriptlang.org/tsconfig#jsx).
{ "javascript": { "jsxRuntime": "reactClassic" }}
Para obtener más información sobre el antiguo y el nuevo tiempo de ejecución de JSX, consulta: https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html
Por defecto:
"transparent"
javascript.linter.enabled
Section titled javascript.linter.enabledActiva el formateador de Biome para archivos JavaScript (y sus super lenguajes).
Por defecto:
true
Opciones aplicadas a los archivos JSON.
json.parser.allowComments
Section titled json.parser.allowCommentsActiva el análisis sintáctico de comentarios en archivos JSON.
{ "json": { "parser": { "allowComments": true } }}
json.parser.allowTrailingCommas
Section titled json.parser.allowTrailingCommasActiva el análisis sintáctico de las comas finales en los archivos JSON.
{ "json": { "parser": { "allowTrailingCommas": true } }}
json.formatter.enabled
Section titled json.formatter.enabledActiva el formateador de Biome para archivos JSON (y sus super lenguajes).
Por defecto:
true
json.formatter.indentStyle
Section titled json.formatter.indentStyleEl estilo de la sangría para archivos JSON (y sus super lenguajes). Puede ser "tab"
o "space"
.
Por defecto:
"tab"
json.formatter.indentSize
Section titled json.formatter.indentSizeEsta opción está obsoleta, utiliza json.formatter.indentWidth
en su lugar.
Obsoleto
Cómo de grande debe ser la sangría para archivos JSON (y sus super lenguajes).
Por defecto:
2
json.formatter.indentWidth
Section titled json.formatter.indentWidthCómo de grande debe ser la sangría para archivos JSON (y sus super lenguajes).
Por defecto:
2
json.formatter.lineEnding
Section titled json.formatter.lineEndingEl tipo de final de línea para archivos JSON (y sus super lenguajes).
"lf"
, Line Feed only (\n
), común en Linux y macOS así como dentro de repositorios git;"crlf"
, Caracteres de retorno de carro + salto de línea (\r\n
), comunes en Windows;"cr"
, Carácter de retorno de carro solamente (\r
), utilizado muy raramente.
Por defecto:
"lf"
json.formatter.lineWidth
Section titled json.formatter.lineWidthCuántos caracteres pueden escribirse en una sola línea en los archivos JSON (y sus superlenguajes).
Por defecto:
80
json.formatter.trailingCommas
Section titled json.formatter.trailingCommasImprima comas finales siempre que sea posible en estructuras sintácticas de varias líneas separadas por comas.
Valores permitidos:
"none"
: se elimina la coma final;"all"
: la coma final se mantiene y se prefiere.
Por defecto:
"none"
json.linter.enabled
Section titled json.linter.enabledActiva el formateador de Biome para archivos JSON (y sus superlenguajes).
Por defecto:
true
Opciones aplicadas a los archivos CSS.
css.parser.cssModules
Section titled css.parser.cssModulesHabilita el análisis sintáctico de módulos CSS
Por defecto:
false
css.formatter.enabled
Section titled css.formatter.enabledActiva el formateador de Biome para archivos CSS (y sus super lenguajes).
Por defecto:
false
css.formatter.indentStyle
Section titled css.formatter.indentStyleEl estilo de la sangría para los archivos CSS (y sus super lenguajes). Puede ser "tab"
o "space"
.
Por defecto:
"tab"
css.formatter.indentWidth
Section titled css.formatter.indentWidthCómo de grande debe ser la sangría para los archivos CSS (y sus super lenguajes).
Por defecto:
2
css.formatter.lineEnding
Section titled css.formatter.lineEndingEl tipo de final de línea para los archivos CSS (y sus super lenguajes).
"lf"
, Line Feed only (\n
), común en Linux y macOS así como dentro de repositorios git;"crlf"
, Caracteres de retorno de carro + salto de línea (\r\n
), comunes en Windows;"cr"
, Carácter de retorno de carro solamente (\r
), utilizado muy raramente.
Por defecto:
"lf"
css.formatter.lineWidth
Section titled css.formatter.lineWidthCuántos caracteres pueden escribirse en una sola línea en los archivos JSON (y sus superlenguajes).
Por defecto:
80
css.formatter.quoteStyle
Section titled css.formatter.quoteStyleEl tipo de comilla utilizado al representar literales de cadena. Puede ser "single"
o "double"
.
Por defecto:
"double"
css.linter.enabled
Section titled css.linter.enabledActiva el linter de Biome para archivos CSS (y sus super lenguajes).
Por defecto:
false
overrides
Section titled overridesUna lista de patrones.
Utiliza esta configuración para cambiar el comportamiento de las herramientas para determinados archivos.
Cuando se compara un archivo con un patrón de anulación, la configuración especificada en ese patrón anula la configuración de nivel superior.
El orden de los patrones es importante. Si un archivo puede coincidir con tres patrones, sólo se utiliza el primero.
overrides.<ITEM>.ignore
Section titled overrides.<ITEM>.ignoreUna lista de patrones de estilo de shell Unix. Biome no aplicará la anulación a los archivos que coincidan con el patrón.
{ "overrides": [ { "ignore": ["scripts/*.js"] } ]}
overrides.<ITEM>.include
Section titled overrides.<ITEM>.includeUna lista de patrones de estilo de shell Unix. Biome aplicará la anulación sólo a los archivos que coincidan con el patrón.
{ "overrides": [ { "include": ["scripts/*.js"] } ]}
overrides.<ITEM>.formatter
Section titled overrides.<ITEM>.formatterIncluirá las opciones de configuración de top level formatter, menos ignore
e include
.
Ejemplos
Section titled EjemplosPor ejemplo, es posible modificar el formateador lineWidth
, indentStyle
para ciertos ficheros que están incluidos en la ruta glob generated/**
:
{ "formatter": { "lineWidth": 100 }, "overrides": [ { "include": ["generated/**"], "formatter": { "lineWidth": 160, "indentStyle": "space" } } ]}
overrides.<ITEM>.linter
Section titled overrides.<ITEM>.linterIncluirá las opciones de configuración de linter de nivel superior, menos ignore
e include
.
Ejemplos
Section titled EjemplosPuede desactivar ciertas reglas para determinadas rutas glob, y desactivar el linter para otras rutas glob:
{ "linter": { "enabled": true, "rules": { "recommended": true } }, "overrides": [ { "include": ["lib/**"], "linter": { "rules": { "suspicious": { "noDebugger": "off" } } } }, { "include": ["shims/**"], "linter": { "enabled": false } } ]}
overrides.<ITEM>.organizeImports
Section titled overrides.<ITEM>.organizeImportsIncluirá las opciones de top level organize imports, menos ignore
e include
.
overrides.<ITEM>.javascript
Section titled overrides.<ITEM>.javascriptIncluirá las opciones de configuración top level javascript.
Ejemplos
Section titled EjemplosPuede cambiar el comportamiento de formato de los archivos JavaScript en determinadas carpetas:
{ "formatter": { "lineWidth": 120 }, "javascript": { "formatter": { "quoteStyle": "single" } }, "overrides": [ { "include": ["lib/**"], "javascript": { "formatter": { "quoteStyle": "double" } } } ]}
overrides.<ITEM>.json
Section titled overrides.<ITEM>.jsonIncluirá las opciones de configuración top level json.
Ejemplos
Section titled EjemplosPuede activar las funciones de análisis sintáctico para determinados archivos JSON:
{ "linter": { "enabled": true, "rules": { "recommended": true } }, "overrides": [ { "include": [".vscode/**"], "json": { "parser": { "allowComments": true, "allowTrailingCommas": true } } } ]}