0.1.1-alpha.3.fix.1

This commit is contained in:
2026-09-27 11:03:58 +02:00
parent 5033547534
commit 889d9cbcbd
7 changed files with 470 additions and 11 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/templates/008-WEB_TYPESCRIPT_PACKAGE.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Templates de package Web TypeScript
@@ -53,12 +53,48 @@ Avant utilisation :
1. remplacer `project-web` par le nom réellement choisi ;
2. sélectionner explicitement le package manager ;
3. ajouter TypeScript comme dépendance de développement avec une version compatible réellement décidée par le projet ;
4. laisser le package manager choisi produire son lockfile si la politique applicable le recommande ;
5. ajouter les dépendances fonctionnelles seulement lorsqu'elles sont réellement nécessaires ;
6. ajouter `dev`, `build`, `preview` ou autres scripts uniquement lorsque leurs owners existent.
4. ajouter les dépendances fonctionnelles seulement lorsqu'elles sont réellement nécessaires ;
5. pour chaque dépendance consommée depuis TypeScript, vérifier si elle fournit déjà ses propres déclarations ;
6. lorsque les déclarations manquent, rechercher le package `@types/...` maintenu correspondant et l'ajouter normalement à `devDependencies` pour une application privée ;
7. ajouter `@types/node` uniquement si du code/config/outillage TypeScript utilise réellement l'environnement Node, et `@types/bootstrap` uniquement si les API JavaScript Bootstrap typées sont consommées ;
8. vérifier la compatibilité de version entre la dépendance runtime, le package de déclarations éventuel et TypeScript ;
9. laisser le package manager choisi produire son lockfile si la politique applicable le recommande ;
10. ajouter `dev`, `build`, `preview` ou autres scripts uniquement lorsque leurs owners existent.
Le template ne contient pas de champ `version` parce qu'une application privée n'a pas besoin d'inventer une version npm distincte. Un projet qui aligne volontairement ce manifest sur sa release globale peut l'ajouter selon sa gouvernance locale.
## `devDependencies` et déclarations de types
Le fichier copiable n'inclut aucune `devDependencies` concrète, car PGR ne peut pas connaître à l'avance les versions ni les packages réellement utilisés. Un projet instancié doit toutefois compléter le manifest. Un exemple de forme, à adapter sans recopier les versions littéralement, est :
```json
{
"devDependencies": {
"typescript": "<version décidée>",
"@types/node": "<si Node est réellement utilisé>",
"@types/bootstrap": "<si les API JavaScript Bootstrap sont réellement utilisées et nécessitent des types externes>"
}
}
```
L'ordre de décision est important :
```text
package utilisé
↓
fournit-il déjà ses propres types ?
├─ oui → utiliser les types embarqués ; ne pas ajouter un @types redondant
└─ non → rechercher @types/<package> ou une déclaration maintenue équivalente
↓
vérifier compatibilité et besoin réel
↓
ajouter au manifest dans la classe de dépendance appropriée
```
Pour une application privée, un package de déclarations utilisé uniquement par le type-check appartient normalement à `devDependencies`. Pour une bibliothèque publiée, si les `.d.ts` publics produits référencent cette déclaration, le package doit rester disponible aux consommateurs et peut donc devoir appartenir aux dépendances publiées plutôt qu'aux seules `devDependencies`.
Cette étape participe directement à la qualité TypeScript et à l'expérience IDE : les déclarations permettent au language service de mieux comprendre les signatures et objets importés, d'améliorer les diagnostics et de fournir navigation et complétion lorsque l'éditeur les expose.
## `tsconfig.json`
Le template active uniquement les contrôles considérés génériques pour une baseline stricte :