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.
Solutions auto-hébergées
Géré par des hôtes Git
npm Entreprise
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.
En supposant que Node.js soit déjà installé sur votre machine :
# Install Verdaccio globally npm install --global verdaccio
verdaccio
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.
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
verdaccio
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é.
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 }
C'est ça ! Votre colis est maintenant publié dans votre registre Verdaccio local.
Pour installer un package à partir de ce registre, vous pouvez soit :
npm adduser --registry http://localhost:4873
npm publish --registry http://localhost:4873
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.
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
Remplacez YOUR_GITHUB_USERNAME par votre nom d'utilisateur actuel ou le nom de votre organisation GitHub.
Mettez à jour votre package.json avec une portée correspondant à votre nom d'utilisateur ou organisation GitHub :
registry=http://localhost:4873
Puis publiez :
//npm.pkg.github.com/:_authToken=YOUR_PERSONAL_ACCESS_TOKEN @YOUR_GITHUB_USERNAME:registry=https://npm.pkg.github.com
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" } }
GitLab fournit également un registre de packages intégré.
Créez ou mettez à jour votre fichier .npmrc local/global avec vos informations d'identification GitLab :
npm publish
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
Puis publiez :
# Install Verdaccio globally npm install --global verdaccio
verdaccio
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.
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 }
Publiez votre colis normalement :
npm adduser --registry http://localhost:4873
npm publish --registry http://localhost:4873
Publiez en utilisant :
npm install <package-name> --registry http://localhost:4873
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 :
Consultez la documentation de npm Enterprise pour les instructions de configuration.
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 :
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!