lancement du gestionnaire de paquets , inclus dans la distribution de Node.js et utilisé pour la distribution de modules en JavaScript. Le dépôt NPM gère plus de 1,3 million de paquets, utilisés par environ 12 millions de développeurs. On enregistre environ 75 milliards de téléchargements par mois. NPM 7.0 a été la première version majeure formée après NPM Inc par GitHub. La nouvelle version sera incluse dans la prochaine distribution de la plateforme , attendue le 20 octobre. Pour installer NPM 7.0 sans attendre la nouvelle version de Node.js, vous pouvez exécuter la commande «npm i -g npm@7».
:
- Espaces de travail (), permettant d'agréger en un seul paquet les dépendances de plusieurs paquets pour les installer en une seule étape.
- Installation automatique (utilisées dans les plugins pour définir les paquets de base avec lesquels le paquet actuel doit fonctionner, même s'il n'est pas utilisé directement). Les peer-dépendances sont spécifiées dans le fichier package.json dans la section «peerDependencies». Auparavant, ces dépendances étaient installées manuellement par les développeurs, mais NPM 7.0 met en œuvre un algorithme garantissant qu'une peer-dépendance correctement définie est trouvée à un niveau ou supérieur au paquet dépendant dans l'arborescence node_modules.
- La deuxième version du format de verrouillage (package-lock v2) et la prise en charge du fichier de verrouillage yarn.lock. Le nouveau format permet d'obtenir des compilations répétables et comprend tout ce qui est nécessaire pour la compilation complète de l'arbre des paquets. NPM peut également maintenant utiliser les fichiers yarn.lock comme source de métadonnées de paquet et d'informations sur les verrous.
- Une refonte significative des composants internes a été réalisée, visant à séparer les fonctionnalités pour simplifier la maintenance et améliorer la fiabilité. Par exemple, le code d'inspection et de gestion de l'arborescence node_modules a été déplacé dans un module distinct .
- . Une transition a été effectuée vers l'utilisation du champ package.exports, ce qui rend impossible l'importation des modules internes via l'appel require().
- Le paquet a été entièrement réécrit , qui utilise désormais la commande «npm exec» pour exécuter des fichiers exécutables à partir de paquets.
- La sortie de la commande «npm audit» a été significativement modifiée, tant en format lisible qu'en sélectionnant le mode «—json».
Source : opennet.ru
