Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 9038|Répondre: 0

Quel est le package-lock.json généré par l’installation de npm ?

[Copié le lien]
Publié sur 13/12/2017 13:17:45 | | |
Pour la modification npm node_modules arbre ou toute action package.json, un package-lock.json sera automatiquement généré. Il décrit exactement l’arbre généré afin que les installations ultérieures puissent engendrer le même arbre, indépendamment des mises à jour intermédiaires des dépendances.

Ce fichier est destiné à être soumis au dépôt du code source et est disponible à diverses fins :

Décrit une seule représentation de l’arbre de dépendances afin de garantir que les coéquipiers, les déploiements et l’intégration continue garantissent que les mêmes dépendances sont installées.

Fournir aux utilisateurs un outil pour « avancer » vers un état node_modules précédent sans avoir à valider le répertoire lui-même.

Faciliter une meilleure visibilité des modifications des arbres grâce à des différences lisibles dans le contrôle de versions.

Et optimiser le processus d’installation en permettant à npm de sauter la résolution de métadonnées dupliquées des paquets précédemment installés.

Un détail clé à propos de package-lock.json est qu’il ne peut pas être publié et sera ignoré s’il est trouvé ailleurs que dans le package haut de gamme. Il partage le format avec npm-shrinkwrap.json, c’est en gros le même fichier mais il permet la publication. Cela n’est pas recommandé à moins de déployer un outil CLI ou d’utiliser autrement le processus de publication pour produire un package de production.

Si package-lock.json et npm-shrinkwrap.json existent tous deux dans le répertoire racine d’un paquet, package-lock.json seront complètement ignorés.

Lien original : https://docs.npmjs.com/files/package-lock.json


Depuis la sortie de npm 5.x, le rôle du verrouillage 5.6.0 a changé de nombreuses fois, et désormais de nombreux petits textes blancs sur Internet sont bloqués dans la traduction précédente du document.

J’ai mis à jour de npm3.x à npm5, mais j’ai constaté que le phénomène lors de l’exécution de 'npm i' n’était pas cohérent avec l’article de vulgarisation scientifique sur Internet.

Il est mentionné que, peu importe la façon dont package.json fichier est modifié, si npm i est exécuté à plusieurs reprises, npm sera téléchargé selon les informations de version décrites dans le fichier de verrouillage.

Il est également mentionné que lors de la répétition de npm i, npm ignore les informations de verrouillage et télécharge le module de mise à jour selon les informations de versionnement sémantique du paquet dans le package.json (le verrou semble inutile).

**D’après les informations, les règles de NPM I ont changé trois fois depuis la sortie de NPM 5.0. **

1. Version NPM 5.0.x, peu importe comment le package.json change, NPM I sera téléchargé selon le fichier de verrouillage

package-lock.json fichier non mis à jour après package.json modification · Numéro #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
Ce problème se plaint de ce problème, évidemment j’ai changé le package.json manuellement, pourquoi ne pas me donner un pack de mise à niveau ! Et cela mène ensuite au problème de la 5.1.0...

2. Après la version 5.1.0, l’installation de npm ignorera le fichier de verrouillage pour télécharger la dernière version de npm

Alors quelqu’un a soulevé cette question : pourquoi le verrouillage de paquets est-il ignoré ? · Numéro #17979 · PNM/PNM https://github.com/npm/npm/issues/17979
La plainte a finalement évolué vers les règles après la version 5.4.2.

3. Après la version 5.4.2, pourquoi le verrouillage de paquets est-il ignoré ? · Numéro #17979 · PNM/PNM https://github.com/npm/npm/issues/17979


En gros, si le package.json est modifié et que le package.json est différent du fichier de verrouillage, npm téléchargera le dernier paquet selon le numéro de version et la signification sémantique du paquet lors de l’exécution de 'npm i', et le mettra à jour en verrouillage.

Si les deux sont dans le même état, alors en exécutant npm, je téléchargerai selon le verrouillage, que la version réelle du package soit neuve ou non.






Précédent:Faites un rapport de statistiques et complétez la méthode du temps sans données
Prochain:Tutoriel npm (4) : Installer localement les packages npm
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com