Générateur de package.json

package.json
Suivant

Au lieu de lancer npm init et de répondre à onze questions, remplissez un formulaire et obtenez un package.json propre et correctement structuré. Ce générateur couvre les champs requis (nom, version), les champs couramment utilisés (scripts, dépendances, devDependencies, engines) et les éléments supplémentaires (repository, bugs, mots-clés, licence) qui rendent un package découvrable et publiable.

Comment générer votre package.json

  1. 1

    Entrez le nom et la version

    Le nom suit les règles npm : en minuscules, sûr pour l'URL, moins de 214 caractères. La version est semver (par exemple, 0.1.0).

  2. 2

    Choisissez le type de module

    CommonJS (par défaut) ou ESM via "type": "module". Cela compte pour les projets Node.js 14+.

  3. 3

    Ajoutez des scripts

    Start, build, test, lint, les commandes s'exécutent avec `npm run <name>`.

  4. 4

    Listez les dépendances

    Packages d'exécution dans les dépendances, outils dans les devDependencies.

  5. 5

    Définissez les métadonnées

    Description, auteur, licence, URL du repository, mots-clés.

  6. 6

    Copiez la sortie

    Collez dans un nouveau package.json à la racine du projet.

Les champs les plus importants

Champ Requis ? Remarques
name Oui En minuscules, 1-214 caractères, sûr pour l’URL
version Oui Semver (majeur.mineur.patch)
type Non “module” pour ESM, omettre pour CommonJS
main Recommandé Point d’entrée pour CommonJS (index.js)
exports Recommandé Carte d’exports moderne pour CJS/ESM
scripts Fortement recommandé Commandes npm run <name>
dependencies Au besoin Packages d’exécution
devDependencies Au besoin Outils de construction, exécuteurs de tests, linters
engines Bon à avoir Plage de versions Node requise
license Oui pour publication Identifiant SPDX comme MIT, Apache-2.0

Feuille de triche Semver

  • 1.0.0, majeur.mineur.patch
  • ^1.0.0, compatible avec 1.x.x (>=1.0.0, <2.0.0)
  • ~1.0.0, mises à jour de patch uniquement (>=1.0.0, <1.1.0)
  • >=1.0.0 <2.0.0, plage explicite
  • 1.0.0-beta.1, préversion
  • latest, tag npm, pas une version

Par défaut, lors de l’exécution de npm install package, c’est ^, ce qui permet des mises à jour non destructrices.

Scripts standards à avoir

{
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "build": "tsc",
    "test": "vitest",
    "lint": "eslint .",
    "format": "prettier --write ."
  }
}

Pièges de nommage

  • Pas de majuscules. MyPackage échoue à npm install.
  • Pas d’espaces. Utilisez des tirets : my-package.
  • Noms scopés commencent par @org/ pour les organisations GitHub ou npm : @acme/utils.
  • Mots réservés. node_modules, favicon.ico, core, express ne peuvent pas être utilisés comme noms de package.

Options de licence

Choisissez un identifiant SPDX reconnu :

  • MIT, choix commun le plus permissif.
  • Apache-2.0, permissif avec accord de brevet.
  • ISC, licence très courte similaire à MIT, par défaut npm.
  • GPL-3.0-or-later, copyleft.
  • UNLICENSED, package privé, pas pour distribution.

Des chaînes de licence incorrectes ou ambiguës déclenchent des avertissements lors de la publication sur npm.

Questions fréquentes

Les dépendances sont installées lorsque quelqu’un exécute npm install dans un projet qui consomme le vôtre. Les devDependencies ne sont installées que dans l’environnement de développement du package. Mettez les packages d’exécution dans les dépendances et les outils de test/construction dans les devDependencies.

Oui, pour les applications. Le fichier de verrouillage fixe les versions exactes et garantit des installations reproductibles sur les machines et CI. Pour les packages de bibliothèque publiés sur npm, le fichier de verrouillage est optionnel, les consommateurs obtiennent leur propre fichier de verrouillage.

Seulement si vous voulez que le package soit ESM (syntaxe import/export) par défaut. Sans cela, les fichiers .js sont traités comme CommonJS. Vous pouvez également utiliser .mjs pour les fichiers ESM ou .cjs pour les fichiers CommonJS, indépendamment de “type”.

Les versions Node contre lesquelles votre code a été testé. Un choix typique aujourd’hui est "engines": {"node": ">=18"}. C’est un avertissement, pas une erreur, mais les outils le respectent et les utilisateurs le fixent correctement.

Outils similaires

Outil disponible dans d’autres langues