Maison > interface Web > js tutoriel > Dépôts npm privés

Dépôts npm privés

Patricia Arquette
Libérer: 2025-01-05 09:43:40
original
356 Les gens l'ont consulté

Private npm Repositories

Vous trouverez ci-dessous un guide détaillé sur la façon de configurer un référentiel npm privé, comprenant diverses alternatives et des extraits de code pratiques pour vous aider à démarrer. Que vous soyez un développeur solo ou que vous fassiez partie d'une grande équipe, l'hébergement privé de vos propres packages npm peut vous offrir contrôle, flexibilité et sécurité améliorée.


Pourquoi utiliser un référentiel npm privé ?

  1. Sécurité et contrôle : Gardez vos packages et votre code internes.
  2. Builds plus rapides : réduisez les dépendances externes et la latence du réseau.
  3. Gestion des accès : contrôlez qui peut accéder ou publier certains packages.
  4. Gestion de versions et archivage : conservez plusieurs versions de packages internes sans confusion ni perturbations externes.

Approches courantes pour l'hébergement d'un référentiel npm privé

  1. Solutions auto-hébergées

    • Verdaccio : un registre proxy npm léger et open source populaire.
    • Sonatype Nexus : Une plateforme complète pour héberger plusieurs formats de référentiels (npm, Maven, etc.).
    • JFrog Artifactory : un gestionnaire de référentiel binaire largement utilisé.
  2. Géré par des hôtes Git

    • Packages GitHub : hébergez des packages npm privés au sein de votre organisation GitHub.
    • Packages GitLab : fournit un registre npm intégré dans le cadre de la plate-forme DevOps de GitLab.
    • Bitbucket (via des intégrations tierces ou des solutions personnalisées).
  3. npm Entreprise

    • Si vous avez de grandes équipes et souhaitez des fonctionnalités de niveau entreprise (contrôle d'accès avancé, audits de sécurité, etc.), npm Enterprise peut être une option.

1. Configuration d'un registre npm privé avec Verdaccio

Verdaccio est un proxy de registre npm open source facile à configurer et à utiliser. Il vous permet d'héberger des packages privés et également de mettre en cache des packages publics à partir du registre officiel npm.

1.1 Installer Verdaccio

En supposant que Node.js soit déjà installé sur votre machine :

# Install Verdaccio globally
npm install --global verdaccio
Copier après la connexion
Copier après la connexion
Copier après la connexion

1.2 Démarrer Verdaccio

verdaccio
Copier après la connexion
Copier après la connexion
Copier après la connexion

Par défaut, Verdaccio démarre sur le port 4873. Vous pouvez ouvrir votre navigateur sur http://localhost:4873 pour voir l'interface utilisateur de Verdaccio.

1.3 Configurer Verdaccio

Verdaccio crée un fichier de configuration par défaut lors de la première exécution. Vous pouvez le personnaliser en le modifiant (le chemin du fichier peut varier en fonction de votre système). Une configuration typique (~/.config/verdaccio/config.yaml) ressemble à :

# Install Verdaccio globally
npm install --global verdaccio
Copier après la connexion
Copier après la connexion
Copier après la connexion
  • stockage : Répertoire où Verdaccio stocke les colis.
  • liens montants : pointe vers le registre officiel npm.
  • packages : définit les règles d'accès, de publication et de proxy.

1.4 Créer un utilisateur et se connecter

verdaccio
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cela vous demande un nom d'utilisateur, un mot de passe et une adresse e-mail. Une fois terminé, vous serez connecté à votre registre privé.

1.5 Publier un package

Dans un répertoire de package avec un package.json valide :

storage: ./storage
auth:
  htpasswd:
    file: ./htpasswd
    max_users: 100

uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:
  '@*/*':
    access: $all
    publish: $authenticated
    proxy: npmjs

  '**':
    access: $all
    publish: $authenticated
    proxy: npmjs

middlewares:
  audit:
    enabled: true

logs:
  - { type: stdout, format: pretty, level: http }
Copier après la connexion
Copier après la connexion

C'est ça ! Votre colis est maintenant publié dans votre registre Verdaccio local.

1.6 Installer à partir de votre registre privé

Pour installer un package à partir de ce registre, vous pouvez soit :

  • Utilisez l'indicateur --registry :
npm adduser --registry http://localhost:4873
Copier après la connexion
Copier après la connexion
  • Ou configurez votre .npmrc pour qu'il pointe vers ce registre globalement ou dans un projet spécifique :
npm publish --registry http://localhost:4873
Copier après la connexion
Copier après la connexion

2. Utilisation des packages GitHub

Si vous hébergez déjà votre code sur GitHub, utiliser les Packages GitHub peut être un moyen pratique de tout garder sous un même toit.

2.1 Activer les packages GitHub pour votre référentiel

  1. Accédez à votre référentiel sur GitHub.
  2. Cliquez sur Paramètres -> Forfaits.
  3. Assurez-vous que les packages GitHub sont activés pour votre organisation/compte.

2.2 S'authentifier auprès des packages GitHub

Créez un jeton d'accès personnel (PAT) avec les étendues read:packages et write:packages. Vous pouvez générer ce jeton à partir de vos paramètres GitHub sous Paramètres du développeur -> Jetons d'accès personnels.

Ajoutez votre jeton à .npmrc :

  npm install <package-name> --registry http://localhost:4873
Copier après la connexion
Copier après la connexion

Remplacez YOUR_GITHUB_USERNAME par votre nom d'utilisateur actuel ou le nom de votre organisation GitHub.

2.3 Publier un package sur des packages GitHub

Mettez à jour votre package.json avec une portée correspondant à votre nom d'utilisateur ou organisation GitHub :

  registry=http://localhost:4873
Copier après la connexion

Puis publiez :

//npm.pkg.github.com/:_authToken=YOUR_PERSONAL_ACCESS_TOKEN
@YOUR_GITHUB_USERNAME:registry=https://npm.pkg.github.com
Copier après la connexion

2.4 Installer à partir des packages GitHub

Assurez-vous que .npmrc pointe vers les packages GitHub, puis :

{
  "name": "@YOUR_GITHUB_USERNAME/my-private-package",
  "version": "1.0.0",
  "publishConfig": {
    "registry": "https://npm.pkg.github.com"
  }
}
Copier après la connexion

3. Utilisation des packages GitLab

GitLab fournit également un registre de packages intégré.

3.1 Configurer le registre des packages GitLab

  1. Accédez à votre projet GitLab.
  2. Allez dans Paramètres -> Forfaits et registres -> Registre des packages.

3.2 Configurer .npmrc

Créez ou mettez à jour votre fichier .npmrc local/global avec vos informations d'identification GitLab :

npm publish
Copier après la connexion

3.3 Publier sur GitLab

Mettez à jour la portée package.json pour qu'elle corresponde à l'espace de noms du groupe GitLab ou de l'utilisateur :

npm install @YOUR_GITHUB_USERNAME/my-private-package
Copier après la connexion

Puis publiez :

# Install Verdaccio globally
npm install --global verdaccio
Copier après la connexion
Copier après la connexion
Copier après la connexion

3.4 Installer à partir des packages GitLab

verdaccio
Copier après la connexion
Copier après la connexion
Copier après la connexion

4. Auto-hébergé avec Sonatype Nexus ou JFrog Artifactory

Si vous recherchez une solution robuste sur site prenant en charge plusieurs types de référentiels, Sonatype Nexus ou JFrog Artifactory pourrait être votre meilleur choix.

4.1 Référentiel Nexus

  1. Installez Nexus Repository Manager sur votre serveur ou machine de développement.
  2. Connectez-vous à l'interface utilisateur Nexus à l'adresse http://your-nexus-server:8081.
  3. Créez un nouveau référentiel npm (hébergé) à partir des paramètres Dépôts.
  4. Configurez l'authentification (si nécessaire) et notez l'URL.

Utilisez une configuration .npmrc similaire pour pointer votre client npm vers votre nouveau référentiel Nexus npm :

storage: ./storage
auth:
  htpasswd:
    file: ./htpasswd
    max_users: 100

uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:
  '@*/*':
    access: $all
    publish: $authenticated
    proxy: npmjs

  '**':
    access: $all
    publish: $authenticated
    proxy: npmjs

middlewares:
  audit:
    enabled: true

logs:
  - { type: stdout, format: pretty, level: http }
Copier après la connexion
Copier après la connexion

Publiez votre colis normalement :

npm adduser --registry http://localhost:4873
Copier après la connexion
Copier après la connexion

4.2 Artefact JFrog

  1. Installez et lancez Artifactory.
  2. Dans l'interface utilisateur d'Artifactory, créez un Référentiel local pour npm.
  3. Configurez .npmrc de la même manière :
npm publish --registry http://localhost:4873
Copier après la connexion
Copier après la connexion

Publiez en utilisant :

  npm install <package-name> --registry http://localhost:4873
Copier après la connexion
Copier après la connexion

5. npm Entreprise

Pour les grandes organisations ayant besoin d'un contrôle total, d'un audit et d'une sécurité avancée, npm Enterprise est une option. Il fournit :

  • Intégration Single Sign-On (SSO).
  • Analyses de sécurité améliorées et audit.
  • Contrôle d'accès précis.

Consultez la documentation de npm Enterprise pour les instructions de configuration.


Meilleures pratiques et conseils

  1. Utiliser les étendues : la définition de la portée de vos packages privés (@company/your-package) permet de les différencier des packages publics.
  2. Gestion .npmrc :
    • Utilisez les fichiers par projet .npmrc pour éviter toute confusion.
    • Gardez les informations d'identification hors du contrôle de version.
  3. Automatisez avec CI/CD : intégrez les étapes de publication dans vos pipelines CI/CD pour plus de cohérence.
  4. Configurer le proxy : la plupart des registres auto-hébergés peuvent proxy le registre public npm, vous n'aurez donc pas à basculer entre les registres pour installer des dépendances communes.
  5. Surveiller et audit : gardez une trace des téléchargements, des versions et de l'activité dans votre registre.

Conclusion

La configuration d'un référentiel npm privé vous donne la liberté de gérer et d'héberger vos propres packages en toute sécurité. Que vous utilisiez une solution auto-hébergée comme Verdaccio, que vous exploitiez des solutions gérées comme les packages GitHub ou GitLab, ou que vous optiez pour des solutions d'entreprise comme Nexus, Artifactory ou npm Enterprise, les principes fondamentaux restent les mêmes :

  1. Configurez le registre.
  2. Configurer l'authentification.
  3. Publiez et consommez vos packages.

Choisissez l’approche qui correspond le mieux aux exigences de votre organisation en matière de sécurité, d’évolutivité et de maintenance. Avec les exemples et les extraits de code ci-dessus, vous devriez disposer d'une base solide pour commencer à héberger vos propres packages npm privés. Bon codage !

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!

source:dev.to
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal