Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Si vous développez une application Node.js avec un grand nombre de packages npm, il n’est pas rare de rencontrer des avertissements ou des erreurs lorsque vous générez votre projet si un ou plusieurs packages ont été mis à jour. Parfois, un conflit de version se produit, ou une version de package a été déconseillée. Voici quelques conseils rapides pour vous aider à configurer votre fichier package.json et à comprendre ce qui se passe lorsque vous voyez des avertissements ou des erreurs. Ce n’est pas un guide complet pour package.json et se concentre uniquement sur le contrôle de version du package npm.
Le système de contrôle de version de package npm a des règles strictes. Le format de version suit ici :
[major].[minor].[patch]
Supposons que vous disposez d’un package dans votre application avec une version 5.2.1. La version principale est 5, la version mineure est 2 et le correctif est 1.
- Dans une mise à jour de version majeure, le package inclut de nouvelles fonctionnalités qui sont non rétrocompatibles, c’est-à-dire des modifications majeures.
- Dans une mise à jour de version mineure, de nouvelles fonctionnalités ont été ajoutées au package qui sont rétrocompatibles avec les versions antérieures du package.
- Dans une mise à jour corrective, un ou plusieurs correctifs de bogues sont inclus. Les correctifs de bogues sont toujours rétrocompatibles.
Il est important de noter que certaines fonctionnalités du package npm ont des dépendances. Par exemple, pour utiliser une nouvelle fonctionnalité du package de compilateur TypeScript (ts-loader) avec webpack, il est possible que vous deviez également mettre à jour le package npm webpack et le package webpack-cli.
Pour gérer le contrôle de version des packages, npm prend en charge plusieurs notations que vous pouvez utiliser dans le package.json. Vous pouvez utiliser ces notations pour contrôler le type de mises à jour de package que vous souhaitez accepter dans votre application.
Supposons que vous utilisez React et que vous devez inclure le package react et react-dom npm. Vous pouvez spécifier cela de plusieurs façons dans votre fichier package.json . Par exemple, vous pouvez spécifier l’utilisation de la version exacte d’un package comme suit.
"dependencies": {
"react": "16.4.2",
"react-dom": "16.4.2",
},
À l’aide de la notation précédente, npm obtient toujours la version exacte spécifiée, 16.4.2.
Vous pouvez utiliser une notation spéciale pour limiter les mises à jour correctives. Dans cet exemple :
"dependencies": {
"react": "~16.4.2",
"react-dom": "~16.4.2",
},
vous utilisez le caractère tilde (~) pour indiquer à npm de mettre à jour un package uniquement lorsqu’il est corrigé. Ainsi, npm peut mettre à jour react 16.4.2 à 16.4.3 (ou 16.4.4, etc.), mais il n’accepte pas de mise à jour vers la version principale ou mineure. Par conséquent, la version 16.4.2 ne sera pas mise à jour vers la version 16.5.0.
Vous pouvez également utiliser l'accent circonflexe (^) pour spécifier que npm peut mettre à jour le numéro de version mineure.
"dependencies": {
"react": "^16.4.2",
"react-dom": "^16.4.2",
},
À l’aide de cette notation, npm peut mettre à jour react 16.4.2 à 16.5.0 (ou 16.5.1, 16.6.0, etc.), mais il n’accepte pas de mise à jour de la version principale. Par conséquent, la version 16.4.2 ne sera pas mise à jour vers la version 17.0.0.
Lorsque npm met à jour les packages, il génère un fichier package-lock.json , qui répertorie les versions réelles du package npm utilisées dans votre application, y compris tous les packages imbriqués. Bien que package.json contrôle les dépendances directes pour votre application, elle ne contrôle pas les dépendances imbriquées (d’autres packages npm requis par un package npm particulier). Vous pouvez utiliser le fichier package-lock.json dans votre cycle de développement si vous devez vous assurer que d’autres développeurs et testeurs utilisent les packages exacts que vous utilisez, y compris les packages imbriqués. Pour plus d’informations, consultez package-lock.json dans la documentation npm.
Pour Visual Studio, le fichier package-lock.json n’est pas ajouté à votre projet, mais vous pouvez le trouver dans le dossier du projet.