npm

npm est le gestionnaire de paquets par défaut pour l'environnement d'exécution JavaScript Node.js de Node.js.

npm

Informations
Créateur Isaac Z. Schlueter (d)
Développé par Isaac Z. Schlueter
Première version 0.0.1[1]
Dernière version 8.18.0 ()[2]
Dépôt github.com/npm/cli
Écrit en JavaScript
Système d'exploitation Multiplateforme
Type Application-level package manager (d)
Licence Artistic License 2.0 (d)
Site web www.npmjs.com

npm se compose d'un client en ligne de commande, également appelé npm, et d'une base de données en ligne de paquets publics et privés payants, appelée le registre npm. Le registre est accessible via le client, et les paquets disponibles peuvent être parcourus et recherchés via le site Web de npm. Le gestionnaire de paquets et le registre sont gérés par npm, Inc.

Depuis la version 0.6.3 de Node.js, npm fait partie de l'environnement et est donc automatiquement installé par défaut[3]. npm fonctionne avec un terminal et gère les dépendances pour une application. Il permet également d'installer des applications Node.js disponibles sur le dépôt npm. En avril 2020, GitHub annonce l'acquisition de npm[4].

Histoire

npm est entièrement écrit en JavaScript et a été développé par Isaac Z. Schlueter en s'inspirant d'autres projets similaires tels que PEAR (PHP) et CPAN (Perl)[5].

En janvier 2022, le mainteneur de deux paquets populaires, colors et faker, a poussé des modifications corrompant ses propres fichiers de manière délibérée, ce qui a provoqué des impressions de texte inutile dans une boucle infinie[6],[7],[8].

Nom

Contrairement à la croyance populaire, npm n'est pas en fait un sigle pour "Node Package Manager". Le précurseur de npm était un utilitaire bash nommé «pm», qui était le nom abrégé de «pkgmakeinst» , une fonction bash qui installait diverses choses sur diverses plateformes. Si npm devait un jour être considéré comme un sigle, ce serait comme «node pm» ou, potentiellement, «new pm»[9].

D'après l'auteur, npm n'est pas le sigle de « Node Package Manager ». Comme il le dit en plaisantant :

« Contrairement à la croyance de beaucoup, « npm » n'est en fait pas l'acronyme de « Node Package Manager ». Il s'agit d'un rétroacronyme signifiant « npm is not an acronym » (« npm n'est pas un acronyme ») (si le nom avait été ninaa, ç'aurait été un acronyme, et donc nommé de manière incorrecte)[10]. »

Il précise par la suite :

« Donc, plus sérieusement, le projet « npm » est nommé d'après son utilitaire en ligne de commande, lui-même ainsi nommé pour être facilement écrit par un programmeur droitier sur un clavier US QWERTY, finissant avec l'annulaire droit en position pour taper la clef - pour les flags et autres arguments en ligne de commande. Cet utilitaire s'écrit toujours en bas de casse, même s'il est en tête de la plupart des phrases dans lesquelles il intervient[10]. »

Toutefois, le fichier README.md inclus dans la toute première version de npm (npm-0.0.1.zip[11]) indique clairement, et avec des majuscules : « The Node Package Manager ».

Références

  1. « v0.0.1 », sur GitHub
  2. « Release v8.18.0 »
  3. https://raw.github.com/joyent/node/v0.6.3/ChangeLog
  4. (en-US) « npm is joining GitHub », sur The GitHub Blog, (consulté le )
  5. (en) « Breaking the CommonJS standardization impasse · Issue #5132 · nodejs/node-v0.x-archive », sur GitHub (consulté le )
  6. (en-US) « Dev corrupts NPM libs 'colors' and 'faker' breaking thousands of apps », sur BleepingComputer (consulté le )
  7. (en) Vish Gain, « Open source developer corrupts his own files, impacting millions », sur Silicon Republic, (consulté le )
  8. (en-US) Dan Goodin, « Developer sabotages his own apps, then claims Aaron Swartz was murdered », sur Ars Technica, (consulté le )
  9. npm - a JavaScript package manager, npm, (lire en ligne)
  10. « Program analysis platform. Contribute to google/shipshape development by creating an account on GitHub », sur GitHub,
  11. « npm/npm », sur GitHub (consulté le )

Liens externes

  • Portail des logiciels libres
  • Portail de la programmation informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.