Verdaccio: un outil puissant pour une gestion facile des packages NPM privés
Points de base
- Verdaccio est une alternative gratuite aux services d'hébergement, de publication et de gestion de package privé commercial NPM. Il permet la création d'un registre NPM local sans aucune configuration et est livré avec sa propre base de données.
- Verdaccio agit comme un serveur de cache / proxy local, et lorsque les dépendances ne sont pas trouvées dans le référentiel personnalisé, ils sont téléchargés à partir du registre officiel du NPM et enregistrés dans le dossier de stockage local. Il soutient également la création de forfaits privés locaux.
- Verdaccio est facile à installer et à configurer et peut être réglé pour redémarrer automatiquement dans des accidents occasionnels. Il permet également aux utilisateurs de s'inscrire pour publier des packages.
- En plus d'héberger des forfaits privés, Verdaccio met également en cache des forfaits publics. Il vérifie s'il existe des packages demandés dans son dossier de stockage et, s'il ne peut être trouvé, transmet la demande au registre officiel du NPM pour télécharger, stocker et répondre à la demande. Cela signifie que même si le registre officiel tombe en panne, la version mise en cache est toujours accessible.
Cet article a été examiné par Panayiotis «Pvgr» Velisarakos et Jurgen van de Moere. Merci à tous les évaluateurs de pairs SitePoint pour avoir rendu le contenu SitePoint Perfect!
Comme nous le savons tous, NPM et son registre sont les gestionnaires de packages JavaScript de facto et la plus grande collection de code au monde. Mais parfois, lorsque vous développez de nouveaux packages incroyables, vous avez besoin d'une intimité supplémentaire. Qu'il s'agisse d'un projet d'entreprise (qui ne devrait pas être partagé publiquement), un projet de thèse de maître / baccalauréat, ou simplement parce que vous, comme moi, avez parfois honte de votre tentative initiale sur un nouveau sujet.
Pour une raison quelconque, il existe de nombreuses options. Le moyen le plus simple est peut-être d'enregistrer un service commercial pour le NPM, puis vous pouvez commencer. Mais cela nécessite des frais et peut ne pas convenir au portefeuille de chacun.
Heureusement, il existe une alternative gratuite appelée Verdaccio qui peut vous aider.
Introduction à Verdaccio
Verdaccio est un package NPM qui vous permet de créer un registre NPM local sans aucune configuration. Il s'agit d'un projet avec toutes les fonctions nécessaires, avec sa propre base de données. Il le fait en agissant comme un serveur de cache / proxy local.
Cela signifie que chaque fois que vous essayez d'installer quelque chose qui n'existe pas à partir d'un référentiel personnalisé, il ping le registre officiel du NPM et télécharge les dépendances. Votre référentiel personnalisé enregistre ces dépendances dans un dossier simple appelé stockage. La prochaine installation utilisera une copie de ce cache local. Plus important encore, certaines commandes du client NPM, telles que NPM Login / AddUser / Publish, sont copiées pour soutenir la création de packages privés locaux, que vous verrez plus loin dans cet article.
Si vous pensez que ce n'est pas nouveau, il y a déjà la Sinopie, vous avez raison. Verdaccio n'est qu'une fourche de Sinopie qui maintient la compatibilité en arrière, mais essaie en même temps de suivre les changements dans le NPM officiel. Un tel changement qui n'est pas disponible en Sinopie est le package de portée, que vous avez peut-être vu avant d'utiliser des bibliothèques comme les types d'hébergement Angular 2 ou TypeScript NPM. Vous pouvez facilement les identifier par les @ symboles dans les précédents:
<code># 安装 Angular2 依赖项 npm install @angular/core # 安装 TypeScript 的官方 Node.js 类型定义 npm install @types/node</code>
Sinopia et Verdaccio sont tous deux disponibles sur Mac / Linux et Windows.
débutant de Verdaccio
Étant donné que Verdaccio est un package NPM, vous pouvez l'installer simplement en exécutant la commande suivante:
<code>npm install -g verdaccio</code>
Ensuite, l'appel Verdaccio démarrera l'instance et exécutera votre registre privé.
Par défaut, il écoutera sur le port 4873. Nous discuterons de la façon de modifier ces paramètres plus tard.
Dans cet article, nous présenterons la configuration du registre sur votre machine de développement. Dans un environnement d'entreprise, vous devrez peut-être le faire sur un serveur dédié afin qu'il puisse accéder à tous les développeurs.
Verdaccio est une application Node.js, ce qui signifie que vous devez veiller à le redémarrer chaque fois que vous vous écrasez. Je recommande d'utiliser PM2. Vous avez juste besoin d'exécuter les étapes suivantes:
<code># 安装 pm2 npm install pm2 -g # 使用 pm2 启动 Verdaccio pm2 start PATH-TO-GLOBAL-VERDACCIO/verdaccio # --> 例如,对于 Windows:C:/Users/[USERNAME]/AppData/Roaming/npm/node_modules/verdaccio/bin/verdaccio</code>
De plus, si après avoir lu cet article, vous avez conclu que Verdaccio ne vous convient pas, arrêtez simplement le processus et désinstallez Verdaccio avec la commande suivante:
<code>npm uninstall -g verdaccio</code>
Configurer le client
Lorsque le registre est opérationnel, vous devez pointer le client NPM vers la nouvelle adresse. Cela peut être fait en exécutant la commande suivante:
<code>npm set registry https://www.php.cn/link/0f3ea482c9513bf4548f302a46d9932d/</code>
Si vous suivez simplement les étapes de cet article et que vous souhaitez restaurer le registre NPM original plus tard, exécutez simplement cette commande NPM Set RegistryDe plus, si vous fournissez des services de registre via HTTPS, vous devez configurer des informations CA appropriées.https://www.php.cn/link/c0ab525d634e80fd8e20e3d6dc00b11c ( Pour l'accès basé sur HTTPS) ou NPM Set Registry https://www.php.cn/link/6baadc89159617043965f9e1889224e7 (pour l'accès HTTP classique).
<code># 将值设置为 null 将使用操作系统提供的列表 npm set ca null</code>Vous pouvez désormais accéder au navigateur de registre en naviguant vers l'adresse
https://www.php.cn/link/0f3ea482c9513bf4548f302a46d9932d .
Lorsque le serveur démarre, un nouveau fichier de configuration nommé config.yaml est automatiquement créé. Par défaut, il sera créé dans votre dossier utilisateur. Sur Windows, cela pourrait ressembler à ceci:
<code>C:\Users\[USERNAME]\.config\verdaccio\config.yaml</code>Un paramètre important consiste à configurer le port par défaut pour l'écoute de Verdaccio. Vous pouvez modifier ce paramètre en ajoutant les lignes suivantes à la fin du fichier de configuration.
<code># 安装 Angular2 依赖项 npm install @angular/core # 安装 TypeScript 的官方 Node.js 类型定义 npm install @types/node</code>
Un autre cadre d'intérêt pourrait être l'utilisation d'un proxy, en particulier dans un environnement d'entreprise. Ces paramètres sont les suivants:
<code>npm install -g verdaccio</code>
N'oubliez pas, après avoir modifié toute configuration, redémarrez Verdaccio en tuant le processus actuel ou en arrêtant le processus PM2 et en le redémarrant.
utilisateur enregistré
Enfin, nous devons configurer un utilisateur qui publie le package dans votre registre. Nous pouvons le faire en utilisant la commande AddUser par défaut, qui pointe vers notre registre personnalisé.
<code># 安装 pm2 npm install pm2 -g # 使用 pm2 启动 Verdaccio pm2 start PATH-TO-GLOBAL-VERDACCIO/verdaccio # --> 例如,对于 Windows:C:/Users/[USERNAME]/AppData/Roaming/npm/node_modules/verdaccio/bin/verdaccio</code>Après cela, suivez simplement les invites sur la ligne de commande.
N'oubliez pas d'utiliser le même port que vous avez configuré plus tôt.Cet utilisateur sera utilisé pour s'authentifier contre les instances de Verdaccio. En plus du fichier config.yaml mentionné ci-dessus, vous trouverez également un fichier htpasswd nouvellement créé pour stocker votre nom de connexion et vos informations d'identification.
Votre premier package NPM privé
Maintenant, nous sommes prêts à créer notre premier package privé. Nous créerons un simple package Hello-World et verrons le processus de publication.
Créer un package
Tout d'abord, créez un nouveau dossier appelé Helloworld quelque part. Maintenant, nous devons démarrer un nouveau package, et nous utilisons le Command NPM init pour ce faire. On vous posera un tas de questions, mais maintenant, la plupart des questions acceptent les valeurs par défaut. Donnez-lui simplement une description, gardez le point d'entrée dans index.js et ajoutez votre nom en tant qu'auteur. Le résultat est un fichier appelé package.json qui décrit votre package.
Une bonne pratique consiste à préfixer le nom de votre package afin que vous puissiez dire immédiatement si vous utilisez une source locale privée ou une source de NPM officielle.La partie suivante consiste à créer le package réel. Par conséquent, nous créons un fichier index.js. Cet exemple simple ne fera qu'exporter une fonction Helloworld:
<code>npm uninstall -g verdaccio</code>Release Package
Le reste doit maintenant libérer votre package. Pour ce faire, nous devons d'abord utiliser la connexion NPM pour vous connecter à notre registre. Vous serez invité à saisir le nom d'utilisateur et le mot de passe que vous définissez plus tôt.
Après avoir terminé cette opération, exécutez simplement NPM Publier dans le répertoire racine de Hello-World pour terminer l'opération.
Si vous accédez maintenant au navigateur de registre dans votre navigateur, situé à
https://www.php.cn/link/0f3ea482c9513bf4548f302a46d9932d/, vous verrez que la liste contient le nouveau package .
Maintenant que nous avons publié notre package privé, créons une application de démonstration simple pour l'utiliser.
Dans une nouvelle démonstration de dossier, nous utilisons à nouveau NPM INIT pour créer une nouvelle application de nœud. Encore une fois, acceptez toutes les suggestions, peut-être ajouter uniquement des informations de description et des auteurs.
Après
, créez un fichier index.js qui agira comme le répertoire racine de notre application.
Installation de votre forfait privé
Pour installer le package privé, vous devez essentiellement faire la même chose que le processus NPM standard.
<code># 安装 Angular2 依赖项 npm install @angular/core # 安装 TypeScript 的官方 Node.js 类型定义 npm install @types/node</code>
Cela installe le package dans votre dossier Node_Modules et met à jour la section dépendances de package.json.
Maintenant, nous pouvons utiliser le package. Ouvrez index.js et ajoutez le code suivant:
<code>npm install -g verdaccio</code>
Maintenant, lorsque vous exécutez votre application en utilisant Node index.js, vous devriez voir Hello World comme sortie sur la ligne de commande.
Félicitations, vous venez de publier et d'utiliser votre propre forfait privé!
Demandez un package public
Il en va de même pour les forfaits publics. Vous continuez à exécuter le nom de package d'installation NPM et tout sera installé dans le dossier Node_Modules comme d'habitude.
Ce que Verdaccio fait dans les coulisses, c'est de vérifier son dossier de stockage et de vérifier si le package demandé existe. S'il n'existe pas, il essaiera de transmettre la demande au registre officiel du NPM, de le télécharger et de le stocker, puis de répondre à votre demande. La prochaine fois que vous effectuez une demande d'installation NPM pour le même package, il fournira désormais le package.
Ainsi, même si le registre officiel tombe en panne ou est inaccessible pour une raison quelconque, vous pouvez toujours accéder à votre propre version mise en cache. Verdaccio téléchargera toujours uniquement le contenu demandé. Si vous publiez quelques mises à jour, vous les téléchargerez au besoin.
Veuillez noter que le navigateur de registre ne doit pas afficher des packages publics. Si vous avez besoin de les afficher, vous pouvez modifier le fichier .sinopia-db.json et ajouter manuellement le nom du package au tableau de liste. N'oubliez pas de redémarrer Verdaccio par la suite.
Conclusion
Vous pouvez donc maintenant héberger votre propre registre privé et bénéficier de forfaits publics mis en cache. Plus important encore, vous pouvez désormais également publier des packages privés sans avoir à communiquer avec le cloud. Une fois l'installation terminée, toutes les commandes client NPM pertinentes sont les mêmes que d'habitude.
Dans la situation folle où certains de vos forfaits sont endommagés ou endommagés, n'oubliez pas que ce n'est qu'un magasin de dossier hébergeant vos forfaits, alors naviguez-y et supprimez le package défectueux. La prochaine installation peut résoudre votre problème.
J'espère que vous avez apprécié ce post et j'ai hâte de vous entendre dans les commentaires!
FAQ (FAQ) sur l'utilisation des packages NPM privés de Verdaccio
Qu'est-ce que Verdaccio et pourquoi devrais-je l'utiliser pour mon package NPM privé?
Verdaccio est un registre Open source, léger et puissant privé NPM qui vous permet d'héberger en privé vos propres packages NPM. Il s'agit d'un excellent outil pour les développeurs qui souhaitent contrôler leur code et leurs dépendances. Verdaccio fournit un moyen sûr et efficace de gérer les packages NPM, vous permettant de mettre en cache des packages, de contrôler l'accès et même de les utiliser comme une option de sauvegarde lorsque le registre du NPM principal baisse.
Comment installer Verdaccio sur mon système?
L'installation de Verdaccio est très facile. Vous devez installer Node.js et NPM sur votre système. Une fois l'installation terminée, vous pouvez utiliser la commande NPM Install pour installer Verdaccio: NPM Install -g Verdaccio. Cela installera Verdaccio globalement sur votre système.
Comment publier mon package NPM privé à l'aide de Verdaccio?
Après avoir installé Verdaccio, vous pouvez publier votre package NPM privé en vous connectant d'abord dans votre registre Verdaccio à l'aide de la commande NPM Login. Vous serez invité à votre nom d'utilisateur, votre mot de passe et votre e-mail. Une fois connecté, accédez à votre répertoire de packages et publiez votre package à l'aide de la commande NPM Publish.
Comment contrôler l'accès à mon package NPM privé à Verdaccio?
Verdaccio vous permet de contrôler l'accès aux packages NPM privés via son fichier de configuration config.yaml. Vous pouvez spécifier qui peut accéder, publier et non publier des packages. Vous pouvez également créer des groupes d'utilisateurs et leur attribuer des autorisations.
Puis-je utiliser Verdaccio comme cache pour les packages NPM publics?
Oui, Verdaccio peut agir comme un proxy et un cache pour les packages NPM publics. Cela signifie que lorsque vous installez le package, Verdaccio vérifiera d'abord s'il est disponible dans son stockage. S'il n'est pas disponible, il le rapportera à partir du registre public NPM et le mettra en cache pour une utilisation future.
Comment configurer Verdaccio pour l'utiliser comme option de secours?
Vous pouvez configurer Verdaccio pour agir comme une option de secours en le définissant comme votre registre principal dans le fichier .npmrc. De cette façon, chaque fois que le registre NPM principal baisse, NPM utilisera automatiquement Verdaccio.
Puis-je intégrer Verdaccio avec d'autres outils?
Oui, Verdaccio peut être intégré à une variété d'outils tels que Docker, Kubernetes et GitLab. Cela en fait un outil universel qui peut s'adapter à de nombreux flux de travail de développement différents.
Comment migrer mon package vers Verdaccio?
Migrer vos packages vers Verdaccio est aussi simple que de les publier vers le registre Verdaccio. Vous pouvez le faire en vous connectant à votre registre Verdaccio et en utilisant la commande NPM Publish.
Puis-je utiliser Verdaccio dans un environnement d'équipe?
bien sûr. Verdaccio est conçu pour fonctionner dans un environnement d'équipe. Vous pouvez contrôler qui peut accéder aux packages, ce qui en fait un excellent outil de collaboration.
Comment contribuer à Verdaccio?
Verdaccio est un projet open source et les contributions sont les bienvenues à tout moment. Vous pouvez contribuer en signalant des erreurs, en suggérant des fonctionnalités, en améliorant la documentation ou en soumettant des demandes de traction.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

JavaScript s'exécute dans les navigateurs et les environnements Node.js et s'appuie sur le moteur JavaScript pour analyser et exécuter du code. 1) Générer une arborescence de syntaxe abstraite (AST) au stade d'analyse; 2) Convertir AST en bytecode ou code machine à l'étape de compilation; 3) Exécutez le code compilé à l'étape d'exécution.

Les tendances futures de Python et JavaScript incluent: 1. Python consolidera sa position dans les domaines de l'informatique scientifique et de l'IA, 2. JavaScript favorisera le développement de la technologie Web, 3. Le développement de plate-forme multiplié deviendra un sujet brûlant, et 4. L'optimisation des performances sera le focus. Les deux continueront d'étendre les scénarios d'application dans leurs champs respectifs et de faire plus de percées dans les performances.

Les choix de Python et JavaScript dans les environnements de développement sont importants. 1) L'environnement de développement de Python comprend Pycharm, Jupyternotebook et Anaconda, qui conviennent à la science des données et au prototypage rapide. 2) L'environnement de développement de JavaScript comprend Node.js, VScode et WebPack, qui conviennent au développement frontal et back-end. Le choix des bons outils en fonction des besoins du projet peut améliorer l'efficacité du développement et le taux de réussite du projet.

Oui, le noyau du moteur de JavaScript est écrit en C. 1) Le langage C fournit des performances efficaces et un contrôle sous-jacent, qui convient au développement du moteur JavaScript. 2) Prendre le moteur V8 comme exemple, son noyau est écrit en C, combinant l'efficacité et les caractéristiques orientées objet de C. 3) Le principe de travail du moteur JavaScript comprend l'analyse, la compilation et l'exécution, et le langage C joue un rôle clé dans ces processus.

JavaScript est au cœur des sites Web modernes car il améliore l'interactivité et la dynamicité des pages Web. 1) Il permet de modifier le contenu sans rafraîchir la page, 2) manipuler les pages Web via Domapi, 3) prendre en charge les effets interactifs complexes tels que l'animation et le glisser-déposer, 4) Optimiser les performances et les meilleures pratiques pour améliorer l'expérience utilisateur.

C et JavaScript réalisent l'interopérabilité via WebAssembly. 1) Le code C est compilé dans le module WebAssembly et introduit dans un environnement JavaScript pour améliorer la puissance de calcul. 2) Dans le développement de jeux, C gère les moteurs de physique et le rendu graphique, et JavaScript est responsable de la logique du jeu et de l'interface utilisateur.

JavaScript est largement utilisé dans les sites Web, les applications mobiles, les applications de bureau et la programmation côté serveur. 1) Dans le développement de sites Web, JavaScript exploite DOM avec HTML et CSS pour réaliser des effets dynamiques et prend en charge des cadres tels que JQuery et React. 2) Grâce à la réactnative et ionique, JavaScript est utilisé pour développer des applications mobiles multiplateformes. 3) Le cadre électronique permet à JavaScript de créer des applications de bureau. 4) Node.js permet à JavaScript d'exécuter le côté du serveur et prend en charge les demandes simultanées élevées.

Python est plus adapté à la science et à l'automatisation des données, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python fonctionne bien dans la science des données et l'apprentissage automatique, en utilisant des bibliothèques telles que Numpy et Pandas pour le traitement et la modélisation des données. 2. Python est concis et efficace dans l'automatisation et les scripts. 3. JavaScript est indispensable dans le développement frontal et est utilisé pour créer des pages Web dynamiques et des applications à une seule page. 4. JavaScript joue un rôle dans le développement back-end via Node.js et prend en charge le développement complet de la pile.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Dreamweaver CS6
Outils de développement Web visuel
