Table des matières
Introduction à Verdaccio
débutant de Verdaccio
Configurer le client
utilisateur enregistré
Installation de votre forfait privé
Demandez un package public
Conclusion
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é?
Comment installer Verdaccio sur mon système?
Comment publier mon package NPM privé à l'aide de Verdaccio?
Comment contrôler l'accès à mon package NPM privé à Verdaccio?
Puis-je utiliser Verdaccio comme cache pour les packages NPM publics?
Comment configurer Verdaccio pour l'utiliser comme option de secours?
Puis-je intégrer Verdaccio avec d'autres outils?
Comment migrer mon package vers Verdaccio?
Puis-je utiliser Verdaccio dans un environnement d'équipe?
Comment contribuer à Verdaccio?
Maison interface Web js tutoriel Hôte, publier et gérer les packages NPM privés avec Verdaccio

Hôte, publier et gérer les packages NPM privés avec Verdaccio

Feb 17, 2025 am 09:39 AM

Verdaccio: un outil puissant pour une gestion facile des packages NPM privés

Host, Publish and Manage Private npm Packages with Verdaccio

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!

Host, Publish and Manage Private npm Packages with Verdaccio

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>
Copier après la connexion
Copier après la connexion
Copier après la connexion

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>
Copier après la connexion
Copier après la connexion
Copier après la connexion

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>
Copier après la connexion
Copier après la connexion

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>
Copier après la connexion
Copier après la connexion

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>
Copier après la connexion
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 Registry

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).

De plus, si vous fournissez des services de registre via HTTPS, vous devez configurer des informations CA appropriées.

<code># 将值设置为 null 将使用操作系统提供的列表
npm set ca null</code>
Copier après la connexion
Vous pouvez désormais accéder au navigateur de registre en naviguant vers l'adresse

https://www.php.cn/link/0f3ea482c9513bf4548f302a46d9932d .

Host, Publish and Manage Private npm Packages with Verdaccio

Configurer le registre personnalisé

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>
Copier après la connexion
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>
Copier après la connexion
Copier après la connexion
Copier après la connexion

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>
Copier après la connexion
Copier après la connexion
Copier après la connexion

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>
Copier après la connexion
Copier après la connexion
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>
Copier après la connexion
Copier après la connexion
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 .

Host, Publish and Manage Private npm Packages with Verdaccio

Exemple d'application utilisateur

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>
Copier après la connexion
Copier après la connexion
Copier après la connexion

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>
Copier après la connexion
Copier après la connexion
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Tutoriel Java
1663
14
Tutoriel PHP
1266
29
Tutoriel C#
1239
24
Démystifier javascript: ce qu'il fait et pourquoi c'est important Démystifier javascript: ce qu'il fait et pourquoi c'est important Apr 09, 2025 am 12:07 AM

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

L'évolution de JavaScript: tendances actuelles et perspectives d'avenir L'évolution de JavaScript: tendances actuelles et perspectives d'avenir Apr 10, 2025 am 09:33 AM

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

Moteurs JavaScript: comparaison des implémentations Moteurs JavaScript: comparaison des implémentations Apr 13, 2025 am 12:05 AM

Différents moteurs JavaScript ont des effets différents lors de l'analyse et de l'exécution du code JavaScript, car les principes d'implémentation et les stratégies d'optimisation de chaque moteur diffèrent. 1. Analyse lexicale: convertir le code source en unité lexicale. 2. Analyse de la grammaire: générer un arbre de syntaxe abstrait. 3. Optimisation et compilation: générer du code machine via le compilateur JIT. 4. Exécuter: Exécutez le code machine. Le moteur V8 optimise grâce à une compilation instantanée et à une classe cachée, SpiderMonkey utilise un système d'inférence de type, résultant en différentes performances de performances sur le même code.

JavaScript: Explorer la polyvalence d'un langage Web JavaScript: Explorer la polyvalence d'un langage Web Apr 11, 2025 am 12:01 AM

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisation Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisation Apr 16, 2025 am 12:12 AM

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration) Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration) Apr 11, 2025 am 08:22 AM

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

De C / C à JavaScript: comment tout cela fonctionne De C / C à JavaScript: comment tout cela fonctionne Apr 14, 2025 am 12:05 AM

Le passage de C / C à JavaScript nécessite de s'adapter à la frappe dynamique, à la collecte des ordures et à la programmation asynchrone. 1) C / C est un langage dactylographié statiquement qui nécessite une gestion manuelle de la mémoire, tandis que JavaScript est dynamiquement typé et que la collecte des déchets est automatiquement traitée. 2) C / C doit être compilé en code machine, tandis que JavaScript est une langue interprétée. 3) JavaScript introduit des concepts tels que les fermetures, les chaînes de prototypes et la promesse, ce qui améliore la flexibilité et les capacités de programmation asynchrones.

Construire une application SaaS multi-locataire avec next.js (intégration backend) Construire une application SaaS multi-locataire avec next.js (intégration backend) Apr 11, 2025 am 08:23 AM

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

See all articles