package.json
Le fichier package.json est le centre de configuration d’un projet Node.js.
Il contient :
- Le nom du projet
- Les dépendances
- Les scripts
- La version
- Les informations du projet
Dans les projets JavaScript modernes, package.json est extrêmement important.
1. Créer package.json
Le fichier package.json est créé avec :
npm init
Ou rapidement avec :
npm init -y
2. Structure de base
{
"name": "my-project",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
},
"author": "",
"license": "ISC"
}
package.json utilise le format :
JSON
3. Le champ name
Le champ name représente le nom du projet.
{
"name": "codebase"
}
Bonne pratique : utiliser des noms simples et lisibles.
4. Le champ version
Le champ version représente la version actuelle du projet.
{
"version": "1.0.0"
}
Cette structure suit généralement :
MAJOR.MINOR.PATCH
5. Le champ description
description permet de décrire le projet.
{
"description": "Projet JavaScript moderne"
}
6. Le champ main
Le champ main indique le fichier principal du projet.
{
"main": "index.js"
}
Ce champ est surtout utile avec Node.js.
7. Les scripts
Le champ scripts contient des commandes personnalisées.
{
"scripts": {
"dev": "vite",
"test": "vitest"
}
}
8. npm run
Les scripts sont exécutés avec :
npm run nom-du-script
Exemple :
npm run dev
9. dependencies
Le champ dependencies contient les packages nécessaires au projet.
{
"dependencies": {
"express": "^4.18.0"
}
}
Ces dépendances sont utilisées directement dans l’application.
10. devDependencies
Le champ devDependencies contient les outils de développement.
{
"devDependencies": {
"vitest": "^1.0.0",
"vite": "^5.0.0"
}
}
Ces outils servent seulement pendant le développement.
11. Dépendance normale vs dépendance dev
| Type | Utilité |
|---|---|
| dependencies | Application principale |
| devDependencies | Outils de développement |
12. Exemple complet
{
"name": "codebase",
"version": "1.0.0",
"scripts": {
"dev": "vite",
"test": "vitest"
},
"dependencies": {
"express": "^4.18.0"
},
"devDependencies": {
"vite": "^5.0.0",
"vitest": "^1.0.0"
}
}
13. package-lock.json
Lorsque des packages sont installés, NPM crée aussi :
package-lock.json
Ce fichier verrouille les versions exactes des dépendances.
14. npm install
Lorsque package.json existe, les dépendances peuvent être installées avec :
npm install
NPM lit automatiquement :
- dependencies
- devDependencies
15. type: module
Pour utiliser les ES Modules modernes avec Node.js, on ajoute souvent :
{
"type": "module"
}
Cela permet d’utiliser :
import / export
Au lieu de :
require / module.exports
16. Scripts populaires
| Script | Utilité |
|---|---|
| dev | Lancer le serveur de développement |
| build | Créer une version de production |
| test | Lancer les tests |
| preview | Prévisualiser le build |
17. Erreur fréquente
package.json doit respecter une syntaxe JSON valide.
Exemple d’erreur fréquente :
{
"name": "codebase",
}
La virgule finale produit une erreur JSON.
18. Bonnes pratiques
- Utiliser des scripts clairs
- Séparer dependencies et devDependencies
- Garder package.json propre
- Utiliser type: module dans les projets modernes
- Nommer correctement les scripts
Résumé rapide
| Champ | Utilité |
|---|---|
| name | Nom du projet |
| version | Version du projet |
| scripts | Commandes personnalisées |
| dependencies | Dépendances principales |
| devDependencies | Outils de développement |
| type: module | Activer ES Modules |
| npm run | Exécuter un script |
| npm install | Installer les dépendances |