npm install packagename --save-dev ne met pas à jour le paquet.json

Y a-t-il des raisons simples ou subtiles que package.json ne mettrait pas à jour après l'exécution d'un --save-dev? Ceci est ma commande:

npm install modulename --save-dev

Exécuter à partir de la racine du projet. La commande réussit, le nouveau module apparaît dans le répertoire node_modules comme prévu. De l'aide serait appréciée. J'utilise npm v 1.4.28

L'intégralité de mon actuel package.json est:

{
    "name": "FooWeb",
    "version": "1.0.0",
    "description": "Foo Web",
    "devDependencies": {
        "gulp": "3.8.11",
        "gulp-jshint": "1.9.2",
        "gulp-concat": "2.5.2",
        "gulp-sass": "1.3.3",
        "gulp-sourcemaps": "1.4.0",
        "gulp-watch": "4.1.1"
    }
}

Je reçois des avertissements sur l'installation d'un paquet que je n'ai pas de champ de référentiel ou de README, mais je pense que ce n'est pas le cas concerner.

43
demandé sur Brian Muenzenmeyer 2015-05-06 17:23:44

16 réponses

J'ai eu ce problème aussi, et ça me rendait fou.

Ce qui a finalement corrigé c'était en cours d'exécution npm init. Cela a ajouté un tas de choses à mon paquet.json, mais après --save-dev a fonctionné comme prévu. Même après avoir supprimé toutes les nouvelles choses ajoutées par npm init, --save-dev encore travaillé.

53
répondu hook 2015-06-27 01:51:17

J'avais le drapeau-g là, quand je l'ai enlevé, cela a fonctionné comme prévu ...

7
répondu Mustafah 2016-10-04 14:32:36

Accédez au fichier JSON - > cliquez avec le bouton droit sur Propriétés - > supprimer le drapeau "lecture seule".

4
répondu ndesign11 2016-12-29 18:58:31

J'ai rencontré cela récemment, et j'ai compris que pour une raison quelconque, C'était Atom qui empêchait le fichier de se mettre à jour, même sans que le fichier soit ouvert.

J'ai fermé l'éditeur, relancé mon installation npm, ouvert à nouveau l'éditeur et tout était comme il se doit.

2
répondu Phil Mayfield 2018-05-07 19:52:57

La réponse de Mustafah ELBanna m'a aidé, mais je veux élargir sa réponse pour d'autres débutants comme moi. Corrigez-moi si je rate quelque chose d'important.

Si vous supprimez l'indicateur -g, le module n'est pas installé globalement pour votre machine, mais seulement localement dans votre projet. Si vous voulez également l'installer globalement, exécutez à nouveau la même commande mais maintenant avec -g au lieu de --save-dev comme ceci:

npm install --save-dev [packagename]

npm install -g [packagename]

Il me semble que quelque chose pourrait mal tourner lorsque vous appelez -g et --save sur une ligne.

Mais encore une fois, je suis nouveau à cela et j'apprécie tous ceux qui veulent améliorer / corriger ma réponse.

1
répondu Kenny 2017-03-21 10:53:41

J'essayais d'installer les gruntjs en utilisant "npm install --enregistrer grunt-sass" mais le paquet.json ne mettra pas à jour

J'ai tout fait mentionné ci-dessus mais pas de chance. Mais le plus drôle est que si j'essaie d'ajouter un paquet dit "underscore (npm install --save underscore)" le fils est mis à jour. Je ne suis pas sûr que ce soit un problème avec le nam en tant que tel. J'ai installé en tant que super utilisateur.

1
répondu Yoosaf Abdulla 2017-11-14 12:46:46

Cela peut se produire dans VSCode (ou probablement d'autres éditeurs) si vous avez un package.json non enregistré ouvert.

Le fichier était en cours de mise à jour mais n'a pas été rechargé dans L'IDE. Je pense que peut-être la valeur par défaut est de recharger seulement si le fichier est non édité? Ou peut-être que j'ai cliqué sur quelque chose pour ignorer les Avertissements.

1
répondu Simon_Weaver 2018-01-01 20:42:30

Il y avait une erreur de syntaxe dans mon paquet.json qui causait cela pour moi!

0
répondu Jason Dorell 2016-06-22 08:01:43

Pour moi, le problème était que j'ai copié la commande de notepad++ il pouvait y avoir des caractères spéciaux ou c'était les espaces, et il ne mettait pas à jour mon paquet.json.

Par exemple n'a pas fonctionné; npm install --save debug pug jwt-simple method-override mongoose

Assurez-vous que lors de l'installation, vous nettoyez la ligne de commande, par exemple les espaces entre chaque module, car il peut y avoir des caractères spéciaux en fonction de votre encodage.

Quand je l'ai corrigé à cela, cela a fonctionné.

npm install --save debug pug jwt-simple method-override mongoose

Assurez-vous également paquet.json n'est pas ouvert dans un éditeur lorsque vous exécutez la commande, car tous les éditeurs ne le gèrent pas avec élégance.

0
répondu blamb 2017-04-19 03:27:50

Après avoir utilisé express generator, j'ai installé certains paquets avec --s et aucun d'entre eux n'a été ajouté au paquet.json.

Ensuite, j'ai supprimé le paquet.json et exécuter npm init et tous ajoutés sans avoir à installer à nouveau

0
répondu kochav 2017-07-10 19:08:24

J'ai un fichier .npmrc qui utilise une api npm construite en interne pour récupérer des paquets. Mon problème était que je n'étais pas connecté à VPN de mon entreprise.

0
répondu koolkat 2017-07-20 16:52:35

J'ai essayé toutes les commandes indiquées dans les réponses ci-dessus mais j'ai réussi à installer le paquet npm-upgrade.

npm i -g npm-upgrade alors npm-upgrade

0
répondu Kanishk Gupta 2017-08-04 11:08:27

La seule façon de résoudre ce problème était d'utiliser npm install --save-dev moduleName au lieu de npm install moduleName --save-dev. Utiliser npm install moduleName --save fonctionne bien pour moi, cependant. Seulement lorsque j'utilise --save-dev, je dois le mettre avant le moduleName. J'espère que cela aide quelqu'un.

0
répondu M.Z. 2017-11-07 11:26:19

, Vous pouvez d'abord vérifier votre config (npm config ls commande ou ~/.npmrc fichier). J'avais link=true.

Dans la version 5.5.1, cette option semble être ignorée lorsque --save est actif. Étant donné que --save-dev remplace --enregistrer, le mode de liaison est de nouveau actif.

Donc pour moi les choses se passent comme si --save surchargé --link qui à son tour surchargé --save-dev.

0
répondu RockyRoad 2017-11-23 11:35:34

J'ai eu le même problème. Lorsque j'ai installé un paquet, il n'était pas affiché sur le paquet.json. Alors j'ai supprimé le paquet.fichier json et lancé à nouveau npm init. Après cela, il fonctionnait et les paquets que j'ai installés auparavant étaient également là sous les dépendances.

0
répondu dilanSachi 2018-04-02 07:11:16

Suppression de la dépendance de devDependencies dans le package.fichier json et installation à nouveau en utilisant uniquement --save a fonctionné pour moi

0
répondu Rahul Makhija 2018-06-05 16:45:30