Partager des configurations
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Si vous gérez plusieurs projets différents, il peut être utile d'avoir une configuration partagée utilisable sur tous vos projets plutôt que de copier-coller la même configuration pour chaque projet.
Cette page explique comment créer, publier et utiliser une configuration partageable.
Créer une configuration partageable
Les configurations partageables sont simplement des packages npm qui exportent un unique fichier de configuration Prettier.
Avant de commencer, assurez-vous d'avoir :
-
Un compte sur npmjs.com pour publier le package
-
Une compréhension basique de comment créer un module Node.js
Commencez par créer un nouveau package. Nous recommandons d'utiliser un package scopé avec le nom @username/prettier-config.
Un package minimal doit contenir au moins deux fichiers : un package.json pour la configuration du package et un index.js contenant l'objet de configuration Prettier partagé :
prettier-config/
├── index.js
└── package.json
Exemple 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 est l'endroit où vous placez la configuration partagée. Ce fichier exporte simplement une configuration Prettier standard avec la même syntaxe et les mêmes options :
/**
* @see https://prettier.io/docs/configuration
* @type {import("prettier").Config}
*/
const config = {
trailingComma: "es5",
tabWidth: 4,
singleQuote: true,
};
export default config;
Un exemple de dépôt de configuration partagée est disponible ici.
Publier une configuration partageable
Une fois prêt, vous pouvez publier votre package sur npm :
npm publish
Utiliser une configuration partageable
Vous devez d'abord installer votre configuration publiée, par exemple :
- npm
- yarn
- pnpm
- bun
npm install --save-dev @username/prettier-config
yarn add --dev @username/prettier-config
pnpm add --save-dev @username/prettier-config
bun add --dev @username/prettier-config
Puis vous pouvez la référencer dans votre package.json :
{
"name": "my-cool-library",
"version": "1.0.0",
"prettier": "@username/prettier-config"
}
Si vous ne souhaitez pas utiliser package.json, vous pouvez utiliser n'importe quelle extension supportée pour exporter une chaîne, par exemple .prettierrc :
"@company/prettier-config"
Étendre une configuration partageable
Pour étendre la configuration et écraser certaines propriétés de la configuration partagée, importez celle-ci dans un fichier prettier.config.mjs puis exportez les modifications, par exemple :
import usernamePrettierConfig from "@username/prettier-config";
/**
* @see https://prettier.io/docs/configuration
* @type {import("prettier").Config}
*/
const config = {
...usernamePrettierConfig,
semi: false,
};
export default config;
Autres exemples
Inclure des plugins dans les configurations partageables
Si vous souhaitez utiliser des plugins dans votre configuration partagée, vous devez les déclarer dans le tableau plugin du fichier de configuration et comme dependencies dans package.json :
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;
{
"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%"
}
}
Un exemple de dépôt est disponible ici
Note : Vous pouvez utiliser peerDependencies au lieu de dependencies. Pour comprendre leurs différences, vous pouvez lire cet article de blog de Domenic Denicola sur les dépendances peer