npm install nicht Lesen kann Paket.json
Ich versuche, mein Knoten-Paket-Abhängigkeiten. Ich möchte in der Lage sein zu installieren alle benötigten Abhängigkeiten, indem Sie einen Befehl, und von dem, was ich gelesen habe, ein Weg dies zu erreichen ist mit einem package.json
Datei und läuft npm install
. Also meine JSON-Datei sieht wie folgt aus:
{
"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"
}
}
Jedoch npm install
meldet den folgenden Fehler:
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
Jemand wissen, warum?
- In diesem besonderen Paket.json ist in Ordnung für mich.
- das ist genial. Froh, zu wissen, es ist wirklich ganz einfach. Vielleicht ist es ein Plattform-Problem. Ich bin mit diesem Befehl auf Windows 8 und 64-bit-Architektur
- Angesichts der "Unerwartetes token ?" - Fehler, vielleicht gibt es einige seltsame (unsichtbare) Zeichen in der json-Datei. Vielleicht versuchen Sie einen anderen text-editor, oder Geige mit Ihrem editor die Einstellungen. Dann speichern Sie das Paket.json-Datei. Ich würde UTF-8 überall.
- danke für die Idee, es hat mich inspiriert! Die Datei wurde bereits als UTF-8 kodiert, aber diese Fehlermeldung machte mich stutzig, also habe ich codiert als ASCII-statt (D. H. entfernt die BOM), und es hat Super geklappt! Danke!
- In der Tat, hier ist ein bug-report auf das Thema github.com/isaacs/npm/issues/3358
Du musst angemeldet sein, um einen Kommentar abzugeben.
Richtige Antwort:
Editor fügt ein byte-order-mark, um die JSON-Datei, die das macht octet-stream eine ungültige JSON-text.
JSON-RFC sagt:
Den bug-report, die Sie erwähnt hat, ist geschlossen worden aus diesem Grund.
Aus meinem Verständnis, keine gültigen ASCII-kodierter text ist auch gültiges UTF-8, also zusammen mit der Abwesenheit der Stückliste, es erklärt, warum es funktioniert nun wie erwartet.
Im Allgemeinen, ich denke, Sie sollten Ihren text-editor zum speichern von Dateien in UTF-8 ohne byte-order-mark. Sehen Was ist der Unterschied zwischen UTF-8 und UTF-8 ohne BOM? zur Diskussion. Pro Was die Codierung zu erwarten ist Node.js source-code? , Node.js akzeptieren würde, der nicht-ASCII-Zeichen im JS-Quellcode-Dateien kodiert auf diese Weise. Dies kann nützlich sein, wenn Sie möchten, Betten Sie ein nicht-ASCII-Zeichenkette irgendwo im source-code.
In Fall gibt es keine Stückliste, überprüfen Sie auch, wenn Sie nur ein "?" irgendwo in der Datei oder anderen Fehler, z.B. eine fehlende oder zusätzliche ",".
Die einzige Lösung ist, geben Sie die genaue version der Abhängigkeiten. NPM manchmal nicht erkennen, > oder .x