Maison > interface Web > js tutoriel > npm i contre npm ci

npm i contre npm ci

Patricia Arquette
Libérer: 2024-11-28 16:02:11
original
164 Les gens l'ont consulté

npm i vs npm ci

Nous connaissons tous l'installation de npm, mais certains d'entre vous ne connaissent peut-être pas npm ci (installation propre). Cette commande est très utile dans les environnements CI. L'utilisation de npm ci peut rendre votre pipeline de build plus rapide et plus stable. L'apprentissage de ces commandes vous aide à mieux comprendre l'installation de npm et pourquoi package-lock.json et package.json sont si importants. Connaître ces bases vous donne une meilleure clarté.

Qu'est-ce que npm ci (installation propre) ?

npm ci est une commande utilisée pour installer des dépendances dans un projet, en mettant l'accent sur la vitesse et la cohérence. Il est particulièrement utile dans les configurations d'intégration continue (CI).

En quoi est-ce différent de l'installation npm ?

  • Installation plus rapide :

    npm ci ignore la mise à jour de package-lock.json. Il suit strictement les dépendances du fichier de verrouillage, ce qui rend le processus plus rapide et prévisible.

  • Fichier de verrouillage strict :

    Il utilise les versions exactes des dépendances dans package-lock.json. S'il y a une incompatibilité entre package.json et package-lock.json, une erreur sera générée. Cela garantit que tous les environnements (local, CI, production) utilisent les mêmes dépendances.

  • Table rase :

    Avant l'installation, npm ci supprime le dossier node_modules pour repartir à zéro.

Quand l’utiliser ?

  • Pipelines CI/CD : parfait pour les systèmes de build automatisés où vous avez besoin d'installations rapides et cohérentes sans mises à jour.
  • Trusted Lock File : à utiliser lorsque vous souhaitez que les dépendances correspondent exactement à ce qui est défini dans package-lock.json.

Voici un tableau de référence rapide qui vous ouvre de nombreuses zones cachées en comprenant les principales différences entre npm install et npm ci :

Étape installation npm npm ci
1. Résolution des dépendances Résout les dépendances en fonction de package.json et met à jour package-lock.json pour refléter les modifications. Ignore la résolution, en utilisant les versions exactes dans package-lock.json sans faire référence à package.json pour les plages de versions.
2. Vérification de la compatibilité des versions Garantit que les dépendances répondent aux plages spécifiées dans package.json, met à jour package-lock.json si nécessaire. Nécessite que les versions de package-lock.json correspondent exactement à package.json ; échoue s'il n'est pas synchronisé.
3. Nettoyage de node_modules Installe uniquement les packages manquants ou mis à jour sans supprimer node_modules, en conservant les dépendances existantes inchangées. Supprime entièrement node_modules avant de tout réinstaller à nouveau.
4. Génération de fichiers de verrouillage Génère un nouveau package-lock.json s'il n'en existe pas ; le met à jour en fonction des modifications de package.json. Nécessite un package-lock.json existant et échoue s'il est manquant ou désynchronisé avec package.json.
5. Synchroniser avec package.json Mise à jour package-lock.json pour s'aligner sur toutes les dépendances nouvelles, modifiées ou supprimées dans package.json. Nécessite que package-lock.json corresponde exactement à package.json ; sinon, il échoue, garantissant une stricte cohérence des versions.
6. Installation des dépendances Installe les dépendances dans node_modules en fonction de package.json, en mettant à jour package-lock.json avec toutes les versions résolues. Installe les dépendances exactement comme spécifié dans package-lock.json, garantissant la reproductibilité et ignorant les plages de versions dans package.json.
7. Modifications du fichier de verrouillage Modifie package-lock.json pour qu'il corresponde automatiquement aux modifications de package.json. Ne modifie pas package-lock.json quelles que soient les modifications de package.json, en maintenant la cohérence.
8. Demandes de réseau Récupère toutes les nouvelles dépendances ou mises à jour introuvables dans node_modules. Récupère uniquement les dépendances répertoriées dans package-lock.json, en ignorant les vérifications supplémentaires.
9. Vitesse Plus lent, en raison de la résolution des dépendances, des mises à jour potentielles des fichiers de verrouillage et des installations incrémentielles. Plus rapide, en utilisant uniquement package-lock.json pour des installations exactes, minimisant ainsi le traitement.
10. Priorité des fichiers package.json est prioritaire : les dépendances sont résolues en fonction de celui-ci et package-lock.json est mis à jour pour refléter les modifications. package-lock.json est prioritaire : les installations en utilisent les versions exactes, en ignorant package.json, sauf pour vérifier les erreurs de synchronisation (échouant si elles ne correspondent pas).
11. Cas d'utilisation idéal Idéal pour le développement local lors de la modification ou de l'ajout de dépendances. Idéal pour les environnements CI/CD, la production ou à tout moment, la cohérence, la vitesse et la reproductibilité sont essentielles.

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