Package.packageJson()
Le fichier package.json est une pièce maitresse d'un projet JS, contenant :
- Les informations sur votre projet (nom, description, auteur, etc.) et la configuration (version du projet, version npm, node, etc.)
- Les scripts disponibles en CLI à exécuter (par exemple le lancement de l'application, les tests, la compilation, etc.)
- Les versions des dépendances principales au format MAJOR.MINOR.PATCH, par exemple
"typescript": "^5.6.0"
- ^ autorise les mises à jour PATCH et Minor, la version précédente de TypeScript peut être téléchargée en
5.*.* par exemple 5.6.8 dans le projet
- ~ autorise uniquement les mises à jour PATCH donc
5.6.* par exemple 5.6.9
- Sans symbole, il s'agit d'une version fixe, plus sécurisée
- Les dépendances en production et en développement
-
Les dépendances en production identifiées par la clé dependencies, ce dernier contient les modules nécessaires au fonctionnement de l’application en production par exemple le module pour la base de données MySQL, SQLite, MongoDB, etc.
-
Les dépendances en développement par la clé devdependencies, modules utilisés uniquement lors du développement par exemple pour tester votre application ou compiler le JS.
Des modules qui ne sont pas indespensables pour le production et à ne surtout pas déployer (alourdir le projet pour rien)
Le fichier package-lock.json
- stocke les dépendances sécondaires (modules utilisés par vos modules) de vos dépendances principales, indispensable pour garantir les mêmes versions du projet entre 2 développeurs
- Ne jamais modifier ce fichier, npm le gère à partir de vos commandes CLI
// Fichier package.json
{
"name": "shopping",
"private": true,
"author": "John Doe <john@doe.com>",
"license": "ISC",
"version": "1.4.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"start": "npx serve -s dist -p 80"
},
"devDependencies": {
"@tailwindcss/vite": "^4.3.2",
"@tailwindplus/elements": "^1.0.22",
"@types/leaflet": "^1.9.21",
"tailwindcss": "^4.3.2",
"typescript": "~6.0.3",
"vite": "^8.1.3"
},
"dependencies": {
"leaflet": "^1.9.4",
"nanoid": "^6.0.0",
"simplycountdown.js": "^3.0.1"
}
}
// Extrait fichier package-lock.json
{
"name": "shopping",
"version": "1.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "shopping",
"version": "1.4.0",
"dependencies": {
"leaflet": "^1.9.4",
"nanoid": "^6.0.0",
"simplycountdown.js": "^3.0.1"
},
"devDependencies": {
"@tailwindcss/vite": "^4.3.2",
"@tailwindplus/elements": "^1.0.22",
"@types/leaflet": "^1.9.21",
"tailwindcss": "^4.3.2",
"typescript": "~6.0.3",
"vite": "^8.1.3"
}
},
"node_modules/@emnapi/core": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz",
"integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"@emnapi/wasi-threads": "1.2.2",
"tslib": "^2.4.0"
}
},
...
}
}