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.
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é.
J'avais le drapeau-g là, quand je l'ai enlevé, cela a fonctionné comme prévu ...
Accédez au fichier JSON - > cliquez avec le bouton droit sur Propriétés - > supprimer le drapeau "lecture seule".
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.
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.
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.
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.
Il y avait une erreur de syntaxe dans mon paquet.json qui causait cela pour moi!
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.
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
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.
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
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.
, 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
.
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.
Suppression de la dépendance de devDependencies dans le package.fichier json et installation à nouveau en utilisant uniquement --save a fonctionné pour moi