npm install ne peut pas lire le paquet.json
J'essaie de gérer mon nœud dépendances de package. J'aimerais être en mesure d'installer toutes les dépendances nécessaires par l'exécution d'une commande, et à partir de ce que j'ai lu, une façon d'y parvenir est l'utilisation d'un package.json
fichier et en l'exécutant npm install
. Donc mon fichier JSON ressemble à ceci:
{
"name": "Name-Of-The-Thing",
"description": "The Thing's Name",
"author": "The Dude <[email protected]>",
"dependencies": {
"mocha":">= 1.12.0",
"mocha-phantomjs":">= 3.1.0",
"chai":">= 1.7.2",
"phantomjs":">= 1.9.1"
}
}
Cependant npm install
signale l'erreur suivante:
npm ERR! Failed to parse json
npm ERR! Unexpected token ?
npm ERR! File: C:\Path\To\The\Thing\package.json
npm ERR! Failed to parse package.json data.
npm ERR! package.json must be actual JSON, not just JavaScript.
npm ERR!
npm ERR! This is not a bug in npm.
npm ERR! Tell the package author to fix their package.json file. JSON.parse
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "test"
npm ERR! cwd C:\Path\To\The\Thing
npm ERR! node -v v0.8.15
npm ERR! npm -v 1.1.66
npm ERR! file C:\Path\To\The\Thing\package.json
npm ERR! code EJSONPARSE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! C:\Path\To\The\Thing\npm-debug.log
npm ERR! not ok code 0
Ce que quelqu'un sait pourquoi?
Ce paquet particulier.json est fonctionne très bien pour moi.
c'est génial. Heureux de savoir qu'il est vraiment simple. C'est peut-être une plate-forme de question. Je suis en cours d'exécution de la commande sur Windows 8, et une architecture en 64 bit
Compte tenu de la "Unexpected token ?" erreur, peut-être il y a un peu bizarre (invisible) de caractères dans le fichier json. Peut-être essayer différentes éditeur de texte, ou de jouer avec votre éditeur de paramètres. Puis réenregistrez le paquet.fichier json. J'aimerais utiliser l'UTF-8 partout.
merci pour l'idée, ça m'a inspiré! Le fichier a déjà été codé en UTF-8, mais que le message d'erreur me rendre suspect, donc j'ai codé comme ASCII au lieu de cela (c'est à dire supprimé le BOM), et il fonctionnait très bien! Merci!
En fait, voici un rapport de bug sur la question github.com/isaacs/npm/issues/3358
c'est génial. Heureux de savoir qu'il est vraiment simple. C'est peut-être une plate-forme de question. Je suis en cours d'exécution de la commande sur Windows 8, et une architecture en 64 bit
Compte tenu de la "Unexpected token ?" erreur, peut-être il y a un peu bizarre (invisible) de caractères dans le fichier json. Peut-être essayer différentes éditeur de texte, ou de jouer avec votre éditeur de paramètres. Puis réenregistrez le paquet.fichier json. J'aimerais utiliser l'UTF-8 partout.
merci pour l'idée, ça m'a inspiré! Le fichier a déjà été codé en UTF-8, mais que le message d'erreur me rendre suspect, donc j'ai codé comme ASCII au lieu de cela (c'est à dire supprimé le BOM), et il fonctionnait très bien! Merci!
En fait, voici un rapport de bug sur la question github.com/isaacs/npm/issues/3358
OriginalL'auteur Ceilingfish | 2013-07-30
Vous devez vous connecter pour publier un commentaire.
Bonne réponse:
Votre éditeur ajoute un ordre d'octet de marque pour le fichier JSON, ce qui rend l'octet-stream an invalid JSON texte.
JSON RFC dit:
La rapport de bug vous l'avez mentionné, a été fermé pour cette raison.
À partir de ma compréhension, pour être valable, toute ASCII codé texte se trouve également être l'UTF-8 valide, afin qu'ensemble, avec l'absence de la NOMENCLATURE, il explique pourquoi il fonctionne maintenant comme prévu.
En général, je pense que vous devriez configurer votre éditeur de texte pour enregistrer des fichiers en UTF-8, sans un ordre des octets de marque. Voir Quelle est la différence entre UTF-8 et UTF-8 sans BOM? pour la discussion. Par Ce codage est prévu pour Node.js le code source? , Node.js accepterait les caractères non-ASCII en JS fichiers source codé de cette façon. Cela peut être pratique lorsque vous souhaitez intégrer un non-ASCII chaîne, quelque part dans le code source.
Peut-être l'une des solutions posté ici? stackoverflow.com/questions/5406172/utf-8-without-bom
Dieu sait pourquoi, Mais dans mon cas, lorsque j'ai enregistré avec NOMENCLATURE, il a travaillé. Sinon, il a échoué pour parser du JSON. J'utilise sublime text 2.
OriginalL'auteur Myrne Stol
Dans le cas où il n'existe pas de NOMENCLATURE, vérifiez également si vous avez juste un "?" quelque part dans le fichier ou d'autres erreurs, par exemple, d'un manque ou d'autres ",".
OriginalL'auteur nottinhill
La seule solution est de spécifier la version exacte de l'dépendances. NPM parfois ne reconnaît pas >.x
OriginalL'auteur galo hernandez