Saltar al contenido principal

Compartir configuraciones

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Si tienes muchos proyectos diferentes, puede ser útil tener una configuración compartida que puedas utilizar en todos ellos, en lugar de copiar y pegar la misma configuración para cada proyecto.

Esta página explica cómo crear, publicar y utilizar una configuración compartible.

Crear una configuración compartible

Las configuraciones compartibles son simplemente paquetes npm que exportan un único archivo de configuración de Prettier.

Antes de comenzar, asegúrate de tener:

Primero, crea un nuevo paquete. Recomendamos crear un paquete con ámbito con el nombre @username/prettier-config.

Un paquete mínimo debe tener al menos dos archivos: un package.json para la configuración del paquete y un index.js que contenga el objeto de configuración compartida de Prettier:

prettier-config/
├── index.js
└── package.json

Ejemplo de package.json:

package.json
{
"name": "@username/prettier-config",
"version": "1.0.0",
"description": "My personal Prettier config",
"type": "module",
"exports": "./index.js",
"license": "MIT",
"publishConfig": {
"access": "public"
},
"peerDependencies": {
"prettier": ">=3.0.0"
},
"devDependencies": {
"prettier": "%PRETTIER_VERSION%"
}
}

index.js es donde colocas la configuración compartida. Este archivo simplemente exporta una configuración normal de Prettier con la misma sintaxis y mismas opciones:

index.js
/**
* @see https://prettier.io/docs/configuration
* @type {import("prettier").Config}
*/
const config = {
trailingComma: "es5",
tabWidth: 4,
singleQuote: true,
};

export default config;

Puedes encontrar un repositorio de ejemplo de configuración compartida aquí.

Publicar una configuración compartible

Cuando estés listo, puedes publicar tu paquete en npm:

npm publish

Usar una configuración compartible

Primero necesitas instalar tu configuración publicada, por ejemplo:

npm install --save-dev @username/prettier-config

Luego, puedes referenciarla en tu package.json:

package.json
{
"name": "my-cool-library",
"version": "1.0.0",
"prettier": "@username/prettier-config"
}

Si prefieres no usar package.json, puedes utilizar cualquiera de las extensiones soportadas para exportar un string, por ejemplo .prettierrc:

.prettierrc
"@company/prettier-config"

Extender una configuración compartible

Para extender la configuración y sobrescribir algunas propiedades de la configuración compartida, importa el archivo en un fichero prettier.config.mjs y exporta las modificaciones, por ejemplo:

prettier.config.mjs
import usernamePrettierConfig from "@username/prettier-config";

/**
* @see https://prettier.io/docs/configuration
* @type {import("prettier").Config}
*/
const config = {
...usernamePrettierConfig,
semi: false,
};

export default config;

Otros ejemplos

Incluir plugins en configuraciones compartibles

Si quieres usar plugins en tu configuración compartida, necesitas declararlos en el array plugin del archivo de configuración y como dependencies en package.json:

index.js
import * as prettierPluginOxc from "@prettier/plugin-oxc";

/**
* @see https://prettier.io/docs/configuration
* @type {import("prettier").Config}
*/
const config = {
singleQuote: true,
plugins: [prettierPluginOxc],
};

export default config;
package.json
{
"name": "@username/prettier-config",
"version": "1.0.0",
"description": "My personal Prettier config",
"type": "module",
"exports": "./index.js",
"license": "MIT",
"publishConfig": {
"access": "public"
},
+ "dependencies": {
+ "@prettier/plugin-oxc": "0.1.2"
+ },
"peerDependencies": {
"prettier": ">=3.0.0"
},
"devDependencies": {
"prettier": "%PRETTIER_VERSION%"
}
}

Puedes encontrar un repositorio de ejemplo aquí

Nota: Puedes usar peerDependencies en lugar de dependencies. Para entender sus diferencias, puedes leer esta publicación de blog de Domenic Denicola sobre dependencias pares