portaldacalheta.pt
  • Principal
  • Gestion De L'ingénierie
  • Gestion De Projet
  • Autre
  • Les Tendances
La Technologie

Guide de npm: le gestionnaire de packages Node.js



JavaScript est de loin le langage le plus utilisé pour le développement de sites Web et d'applications Web. La multitude de ressources est stupéfiante, et plus encore, le nombre de bibliothèques disponibles.

Au début, ces bibliothèques sont peu nombreuses et faciles à entretenir; cependant, l'enfer de la dépendance s'installe assez tôt et une solution plus mature est nécessaire.



npm est probablement le gestionnaire de packages le plus populaire pour JavaScript.



Entrez le Node Package Manager (npm) - un gestionnaire de packages JavaScript notamment utilisé en conjonction avec Node.js , bien qu'il puisse également être utilisé indépendamment. Il vous donne un contrôle exceptionnel sur les dépendances de votre projet et constitue un excellent moyen de contribuer au monde open source.



Vous pouvez commencer en exécutant simplement npm install et l'injecter dans votre fichier JavaScript.

Vous souhaitez installer une version spécifique? Aucun problème. Exécutez npm install @1.2.3.



Vous voulez installer un package globalement (comme Mocha ou Angular-CLI)? Ajoutez simplement un -g comme ceci: npm install -g angular-cli mocha.

Certes, la plupart des cas d'utilisation s'arrêtent à une installation npm, et rien d'autre n'est nécessaire. Cependant, npm propose de nombreuses fonctionnalités supplémentaires, que je vais vous expliquer, en mettant en évidence celles que je considère essentielles, vraiment utiles ou tout simplement géniales.



Commandes CLI

L'interface de ligne de commande est l'endroit où les utilisateurs passent la plupart de leur temps à interagir avec npm, et son interface d'aide est réellement utile.

L'interrogation de l'aide (npm help) génère tout un éventail d'options et l'exécution de npm help-search vous donne une liste de résultats de recherche directement à partir du markdown npm.



Voici les commandes principales qui se démarquent.

  • install: Il est mentionné ici en raison de sa nécessité absolue lorsque vous travaillez avec npm. Utilisé pour installer un nouveau package localement ou globalement (lors de l'ajout de -g) ou pour installer les dépendances répertoriées dans le package.json fichier (plus à ce sujet plus tard).



  • uninstall: C'est aussi un élément essentiel. Il est utilisé pour purger un package spécifique de node_modules répertoire local ou global (lors de l'ajout de -g).

  • access: C'est le terrain de jeu des administrateurs de permissions utilisateur npm dans le contexte npm-organizations et les packages étendus (privés). Des trucs vraiment puissants. Utilisé en conjonction avec adduser, owner, team, etc., il donne un contrôle précis sur qui a accès à quoi.



  • bin: Où diable les paquets sont-ils installés? Exécutez cette commande pour voir le chemin absolu du fichier.

  • cache: Si vous commencez à installer des packages à partir de npm gauche, droite et centre, cette commande est très utile. Soit l'appelez avec le ls sous-commande pour afficher une liste des packages mis en cache localement ou avec clean sous-commande pour effacer tous les packages qui se trouvent dans le cache. À l'époque où le registre npm était encore un peu instable, c'était essentiel pour revenir à un environnement stable ou pour réinitialiser les choses lorsque vous n'aviez pas correctement configuré les autorisations npm.

  • config: Nous aborderons les différentes options de configuration plus tard, mais cette commande traite principalement des propriétés de configuration persistantes dans le fichier de configuration local ou global en utilisant set, get ou delete sous-commandes.

  • dedupe ou ddp: Lorsque vous travaillez sur un projet sur une longue période et que vous installez des packages directement à partir de npm, cette commande parcourra l'arborescence des packages locaux et tentera de simplifier les dépendances.

    évaluation heuristique d'un exemple de site web
  • link: Lorsque vous développez votre propre package npm, cela vous permet de créer un lien symbolique vers le contexte global afin qu'il puisse être testé comme s'il avait été installé globalement à partir du registre npm. Par exemple, si vous écrivez un outil d'assemblage dans un nœud sur lequel une CLI est installée globalement, vous pouvez exécuter cette commande et tester le comportement de votre CLI sans avoir à la déployer au préalable.

  • ls: Il est utilisé pour visualiser les dépendances de package et leurs dépendances, dans une structure arborescente. C’est cool à voir et est également utile pour les comparaisons avec d’autres projets.

  • outdated: Ceci est utilisé pour évaluer l'état actuel des dépendances installées et si elles sont ou non obsolètes. Dans les projets où la liste de dépendances racine fait des centaines de lignes, une vérification manuelle des paquets est presque impossible. Ajout -g --depth=0 Cette commande vous permet également de vérifier vos packages installés globalement.

  • publish: Cette commande est essentielle lors du développement de votre propre package pour npm. Il fait exactement comme son nom l'indique; il publie votre package dans le registre npm.

  • search: Utilisez cette option pour rechercher dans le registre tous les packages contenant le texte fourni dans le troisième argument.

  • shrinkwrap: En bref, cette commande vous permet de verrouiller des versions de dépendances spécifiques dans un package dans l'ordre, de sorte qu'un semver relâché ( gestion des versions sémantique ) numéro ne rompt pas le code de production.

  • star: Aimez-vous vraiment un package que vous utilisez? Utilisez cette commande pour montrer votre appréciation directement depuis le terminal, qui se reflète ensuite sur la page du package dans le registre npm.

  • update: Cela suit généralement le outdated commande pour mettre à jour les packages obsolètes.

  • version: Cela vous donne un raccourci pour déplacer le package.json version, et faites une balise git tout en un.

Notez que la plupart de ces commandes peuvent prendre des sous-commandes et / ou des configurations, et cette liste n'est en aucun cas une discussion de bout en bout sur la CLI.

npm-config

La configuration est une partie importante de npm, et il existe plusieurs façons de définir les variables de configuration.

Configuration via CLI et variables d'environnement

Tout d'abord, la configuration peut être définie via la CLI à partir du terminal.

En général, cela ressemblerait à ceci: npm -- [].

Si la valeur n'est pas spécifiée, l'option sera définie sur true par défaut.

Par exemple, supposons que vous travaillez sur un package npm limité (privé) et que vous décidez de le publier en tant que package public.

Cela se fait facilement en ajoutant --access=public à votre publish commander. Si nous ne spécifions pas que la propriété soit publique, la valeur par défaut serait restreinte (privée).

La configuration ajoutée à d'autres commandes comme celle-ci ne persiste pas partout, il peut donc devenir fastidieux de définir un tableau de configurations via la CLI.

Dans ces cas, il peut être préférable de définir la configuration à l'aide de variables d'environnement.

comment faire un jeton erc20

Toute variable d'environnement définie avec npm_config_ Le préfixe sera utilisé pour configurer npm.

Par exemple: export npm_config_registry=localhost:4321 définirait l'option de configuration du registre globalement, et lorsque npm est exécuté, il utilisera le registre npm situé sur localhost sur le port 4321.

Configuration via le fichier npmrc

Vous pouvez également définir les options de configuration à l'aide de la commande spéciale .npmrc fichier, qui peut être défini à différents niveaux en fonction de vos besoins:

  • Niveau projet: à la racine du code d’un projet avec son package.json fichier, généralement path/to/project/.npmrc
  • Niveau utilisateur: répertoire qui configure le compte d’un utilisateur spécifique, généralement ~/.npmrc
  • Niveau global: Le répertoire où npm recherche les configurations globales, généralement $PREFIX/etc/npmrc
  • Niveau intégré: soyez prudent. Cette configuration n'est pas seulement globale mais fait également partie du code source de npm, et les meilleures pratiques recommandent (en fait, exigent) de ne pas modifier le code dont nous ne sommes pas responsables. Il se trouve généralement dans /path/to/npm/npmrc.

Paramètres de configuration dans le .npmrc Le fichier peut être modifié et conservé à l'aide de l'interface de ligne de commande en exécutant une commande au format suivant: npm config set .

Par exemple, vous pouvez exécuter npm config set access public pour rendre publique la configuration de publication d'un package de portée (privé).

Par défaut, cette commande conserverait la configuration localement (la configuration au niveau utilisateur comme décrit ci-dessus), mais vous pouvez ajouter -g pour le maintenir globalement.

Lorsqu'une configuration persistante doit avoir lieu au niveau du projet ou au niveau intégré, le .npmrc Le fichier doit être modifié à l'aide d'un éditeur de texte.

Configuration via package.json

Enfin, la configuration peut être définie à partir de package.json fichier. Cependant, cela est rarement utilisé (et ne doit être utilisé que si cela est explicitement requis), car un niveau de projet .npmrc file est le lieu traditionnellement préféré pour définir la configuration du package.

Paramètres de configuration notables

  • access: Comme indiqué ci-dessus, il est utilisé pour définir les autorisations.

  • always-auth: Il est important de noter que ce paramètre par défaut est false. Lorsqu'il est défini sur true, npm exigera toujours une authentification lors du contact avec le registre.

  • ca: Par défaut, l'autorité de certification (CA) npm. Il peut être changé en null pour autoriser l'accès uniquement aux bureaux d'enregistrement connus, ou à un certificat d'autorité de certification spécifique pour n'accorder l'accès qu'à ce certificat spécifique. Ce paramètre, ainsi que cafile, cert et strict-ssl, sont rarement utilisés, mais parlent de l'aspect sécurité et fiabilité de npm, ce qui permet d'avoir l'esprit tranquille en sachant que le paquet que vous installez provient de la source que vous attendez.

  • color: La valeur par défaut est true, ce qui vous permet de rompre avec la morosité standard du terminal en colorant le stdout cela est autorisé par les descripteurs de fichier tty. S'il est défini sur false, le terminal reste terne. Lorsqu'il est défini sur always, il sort toujours en couleur.

  • depth: Ce paramètre permet un contrôle granulaire sur ce que vous voyez avec les commandes récursives, telles que ls et outdated, en attribuant à quelle profondeur elles sont exécutées. Une valeur de 0 évaluera uniquement le premier niveau de dépendances tandis que l'infini (la valeur par défaut) entraînera l'évaluation de tous les niveaux de dépendances. L'exception à cette règle est lors de son utilisation avec outdated; dans ce cas, l'infini est interprété comme 0 pour assurer une sortie plus pertinente.

  • dev: Ceci est défini sur false par défaut, mais lorsqu'il est défini sur true (lors de l'exécution d'un npm install), toutes les dépendances de développement dans le package.json Le fichier sera installé avec les dépendances normales.

  • dry-run: Lorsque ce paramètre est défini sur true, npm n'apportera aucune modification à votre package mais vous dira à la place ce qu'il aurait fait. Cela peut être très utile lors de l'exécution de certaines commandes, telles que dedupe ou update.

  • git-tag-version: Il est défini sur true par défaut. Ce paramètre marque une version dans git lors de l'exécution de npm version commander. Si vous utilisez npm comme gestionnaire de packages pour un grand projet qui a des versions balisées dans git, cela peut vous faire gagner du temps et n'oubliez pas de mettre à jour le package.json fichier pour vous.

  • loglevel: Par défaut, il est défini sur warn, ce qui donne une sortie d'erreur et d'avertissement lors de l'exécution des commandes npm. Les autres paramètres incluent silent, qui ne fournit aucune sortie; error, qui enregistre uniquement les erreurs dans la sortie; http, qui n'annonce que les erreurs de requête http; info, pour vouloir une sortie informative); verbose, qui enregistre presque tout; et silly, qui, comme son nom l'indique, donne une quantité stupide de sortie et plus encore.

  • production: Lorsque ce paramètre est défini sur true, npm agit en conséquence et exécute toutes les commandes en mode production. Cela signifie que le développement ou les dépendances facultatives ne seront pas installés, et aucune tâche liée au développement ne sera exécutée.

  • rollback: Lorsqu'il est défini sur true, toutes les installations ayant échoué sont supprimées. Cela est pratique lorsqu'une installation de dépendances échoue. En fonction de votre niveau de journalisation, vous devriez être en mesure de voir quelles installations ont échoué, de les noter et d'exécuter le npm install commande avec l'option de restauration définie sur true. Ensuite, avec vos notes et une installation à sec (comme décrit ci-dessus), vous pouvez ensuite déboguer le problème.

  • save : When installing a package directly from the registry, you can append –save to the command which will add the installed package to the dependencies option in the package.json file. For example, npm install lodash` ajoutera du lodash à vos dépendances.

  • save-dev: Similaire à l'option d'enregistrement de la configuration, ajoutez --save-dev lors de l'installation d'un package, et il sera ensuite ajouté à l'option devDependencies dans le package.json fichier.

  • save-optional: Similaire à l'option d'enregistrement de la configuration, ajoutez --save-optional lors de l'installation d'un package, et il sera ensuite ajouté à l'option optionalDependencies dans le package.json fichier.

  • save-exact: Lors de l'installation de packages, le save, save-dev et save-optional les options modifient le package.json en insérant le package installé dans sa propriété respective avec un opérateur de plage semver. Lors de l’invocation du paramètre de configuration ‘save-exact’ avec la valeur true, en conjonction avec l’un des paramètres mentionnés ci-dessus, un numéro de version spécifique est utilisé, ignorant la plage de semver.

    dans quoi sont écrits les systèmes d'exploitation
  • save-prefix: Ceci définit l'opérateur de plage semver lors de l'utilisation de save, save-dev ou save-optional. La valeur par défaut est ^, ce qui permet des mises à niveau mineures des packages lors de l'installation. Cela peut être défini sur n'importe quel opérateur de plage de semver préfixé valide.

  • tag-version-prefix: La valeur par défaut conventionnelle est v, spécifiant ce qui est ajouté à la version de la balise git lors de l'exécution de npm version.

Mise à jour de npm à l'aide de npm

Vous pouvez également utiliser npm pour se mettre à jour.

Exécutez simplement npm install -g [email protected] , et npm sera mis à jour vers la dernière version stable. Il est important de noter que chaque version de Node.js est livré avec une version spécifique de npm, et d'après mon expérience, vous ne devriez pas trop jouer avec cette association.

En fin de compte, ma recommandation est de s'en tenir à l'appariement tel qu'il est prévu.

Lorsque vous utilisez npm en tant qu'outil autonome, assurez-vous de comprendre les implications de l'utilisation de la version que vous choisissez. Il existe un excellent outil pour gérer différentes versions de Node.js (et donc les versions de npm) sur le même système appelé NVM .

Le fichier package.json

Le package.json Le fichier est l'élément crucial qui relie tout ensemble.

C'est une condition requise pour publier un package dans le registre npm, et c'est là que la partie gestion des dépendances prend vie.

Il comporte deux champs obligatoires, à savoir «nom» et «version», et ensemble ces propriétés doivent constituer un identifiant unique.

Le champ de nom doit respecter certaines règles, telles que définies par le documentation npm sur la dénomination , et le champ de version est soumis au spécificiations semver .

npm lit le fichier package.json pour la gestion des dépendances.

En plus de cela, vous pouvez avoir une liste de dépendances d'un mile de long, et définir une version spécifique à utiliser pour chacune d'elles, en utilisant les versions semver et les opérateurs de plage. Voici une liste d'autres propriétés notables.

'principale'

«Main» définit le point d'entrée de votre application, par défaut index.js. Selon la convention ou votre framework, il peut s'agir de app.js ou main.js. Vous pouvez, bien sûr, en faire ce que vous voulez.

«Scripts»

C'est une propriété sous-estimée.

Premièrement, il peut être utilisé pour effectuer des tâches lors de la pré-publication.

Deuxièmement, il fournit un endroit où vous pouvez alias un tableau de commandes fréquemment utilisées, allant des tâches de construction (définies dans gulp ou grunt), au déclenchement de l'installation d'autres dépendances (avec quelque chose comme bower), au démarrage d'un serveur de développement avec webpack, ou exécuter un ensemble de commandes bash.

Logiciel de visualisation 3D open source

«Dépendances»

Cette propriété est une liste des packages nécessaires à votre application, ainsi que le numéro de semver compatible. C'est une propriété notable car elle peut être modifiée depuis le terminal lorsque vous installez des packages locaux.

Cela se fait en ajoutant --save (ou le raccourci -S) à la fin du npm install commander.

Lorsque vous faites cela, le ou les packages nouvellement installés sont ajoutés à la liste des dépendances dans votre package.json fichier.

De même, une dépendance peut également être supprimée en ajoutant --save lors de l'exécution de npm uninstall commander.

Il est important d'être conscient des modèles de version de semver de chacune des dépendances et de leur signification.

Si la règle semver est trop stricte, vous perdez de nouvelles fonctionnalités et améliorations, tandis que si la règle semver est trop assouplie, une version cassante d'un package peut être installée le long de la ligne.

Une installation de package cassée peut s'avérer assez difficile à résoudre, en particulier lorsque la version minifiée du package est utilisée.

'DevDependencies'

Indépendamment de la propriété dependencies, la propriété «devDependencies» vous permet de définir des dépendances qui ne sont utilisées que pendant la phase de développement et qui ne sont pas requises pour la version de production (comme ESLint, les packages grunt-contrib et Protractor). Tout comme pour les dépendances, cette propriété peut être modifiée depuis le terminal en ajoutant --save-dev (ou le raccourci -D) à la fin du npm install ou la commande npm uninstall commander. La même mise en garde s'applique à la gestion des versions comme mentionné sous les dépendances.

'Un m'

C'est ici que vous pouvez spécifier le (s) fichier (s) exécutable (s) de votre package, comme le chemin vers un utilitaire CLI. Cette propriété indique à npm de créer des liens symboliques locaux ou globaux vers vos exécutables lorsque votre package est installé.

'Config'

Comme indiqué précédemment, c'est ici que vous définissez les paramètres de configuration via votre package.json fichier.

'privé'

Lorsqu'il est défini sur true, npm refusera de publier le package.

comment obtenir powerpivot dans excel

Cela ne doit pas être confondu avec le paramètre de configuration d'accès.

Il s'agit d'un paramètre pratique lorsque vous avez un projet qui utilise npm avec son package.json mais il n'est pas destiné à être publié dans le registre npm, qu'il soit limité ou public.

Si votre intention change, modifiez simplement le paramètre sur false et vous pourrez publier votre package.

Propriétés personnalisées

Le package.json Le fichier accepte également les propriétés personnalisées, tant que le nom n'est pas déjà défini ou réservé.

Développer votre propre package npm

L'écosystème npm est rempli de packages, écrits par des milliers de développeurs différents à travers le monde. Chacun résout une sorte de problème, en fournissant une abstraction ou en présentant une implémentation de quelque chose.

Il y a de fortes chances que, à un moment donné, vous souhaitiez également développer votre propre package à partager.

Tout d'abord, vous devez créer un package.json fichier avec les propriétés minimales requises de «nom» et «version», puis la propriété «main» pour spécifier le point d'entrée, par exemple index.js.

Écrivez votre code dans ce fichier index.js, connectez-vous avec votre compte d'utilisateur npm ou créez un nouvel utilisateur à partir du terminal, et vous êtes prêt à le publier dans le registre npm.

Les packages peuvent être publics ou privés.

Les packages publics sont gratuits et peuvent être utilisés par tous.

Les packages privés, appelés packages étendus, ne peuvent être publiés que si vous avez payé un utilisateur de modules privés, et ils peuvent être identifiés par le signe distinct @username/ qui est ajouté au nom du package.

Les packages de portée peuvent également être publiés publiquement en appelant le publish commande avec --access=public.

De plus, si vous passez un peu plus de temps à développer et à améliorer la base de code de votre package, et qu'il est temps qu'une nouvelle version soit publiée, vous modifiez simplement la version (selon les règles et la convention semver) du package dans le package.json fichier et tapez npm publish.

Vous pouvez également utiliser l'interface de ligne de commande et appeler npm version , où update_type est soit patch, minor, ou major, comme décrit par semver, et cela incrémente alors automatiquement le numéro de version dans le package.json fichier.

Organisations npm

Encore une fois, le documentation npm car c'est excellent, et il serait vain de simplement répéter leurs paroles.

Ce que l'on peut dire des organisations dans le contexte de npm, c'est qu'elles sont extrêmement fines et, lorsqu'elles sont gérées correctement, les grandes équipes et les individus, travaillant sur des packages étendus ou publics sous un seul nom, peuvent être très bien gérés et restreints.

Bien qu’il soit complexe à maîtriser, c’est très enrichissant.

Le pouvoir de npm

En fin de compte, la documentation fournie par npm est complète et devrait être consultée pour plus de détails, mais cet article fournit un aperçu utile des fonctionnalités de base et plus avancées, impliquées, traduisant la génialité de npm.

Comme pour toutes choses, des opinions fortes existent et de nombreux défauts peuvent être trouvés. Mais si vous n'avez jamais essayé npm (ou node, d'ailleurs), plongez-vous et explorez-le par vous-même. Il y a de fortes chances que vous l'apprécierez plus que vous ne le pensez.

Pour des articles plus intéressants sur npm, pensez à lire Utilisation de Scala.js avec npm et Browserify .

Conseils de développement complets du créateur de la bibliothèque de formulaires Redux

L'avenir Du Travail

Conseils de développement complets du créateur de la bibliothèque de formulaires Redux
Pour les fondateurs qui mobilisent des capitaux: réfléchir aux implications des billets convertibles

Pour les fondateurs qui mobilisent des capitaux: réfléchir aux implications des billets convertibles

Processus Financiers

Articles Populaires
Comment créer un bouton SSO - Un didacticiel de connexion Flask
Comment créer un bouton SSO - Un didacticiel de connexion Flask
Invalidation du cache Rails au niveau du champ: une solution DSL
Invalidation du cache Rails au niveau du champ: une solution DSL
Tirer le meilleur parti des actions - Leçons d'un ancien analyste de recherche
Tirer le meilleur parti des actions - Leçons d'un ancien analyste de recherche
Programmation visuelle avec Node-RED: câbler l'Internet des objets en toute simplicité
Programmation visuelle avec Node-RED: câbler l'Internet des objets en toute simplicité
SaaS - Tactiques de tarification qui peuvent catapulter votre entreprise
SaaS - Tactiques de tarification qui peuvent catapulter votre entreprise
 
Programmation visuelle avec Node-RED: câbler l'Internet des objets en toute simplicité
Programmation visuelle avec Node-RED: câbler l'Internet des objets en toute simplicité
Introduction à Kotlin: programmation Android pour les humains
Introduction à Kotlin: programmation Android pour les humains
Pourquoi les devises des marchés émergents sont-elles volatiles?
Pourquoi les devises des marchés émergents sont-elles volatiles?
Comment créer une application multi-locataire: un didacticiel de mise en veille prolongée
Comment créer une application multi-locataire: un didacticiel de mise en veille prolongée
Guide de migration d'Oracle vers SQL Server et SQL Server vers Oracle
Guide de migration d'Oracle vers SQL Server et SQL Server vers Oracle
Articles Populaires
  • rails 4 vs rails 5
  • comment utiliser un bot discord
  • que se passe-t-il lorsqu'une entreprise dépose le chapitre 11
  • qu'est-ce que les données xml dans word
  • que fait un directeur financier dans une entreprise
  • comment apprendre le codage c
Catégories
  • Gestion De L'ingénierie
  • Gestion De Projet
  • Autre
  • Les Tendances
  • © 2022 | Tous Les Droits Sont Réservés

    portaldacalheta.pt