2016-10-10 4 views
0

Ich habe gerade heruntergeladen node.js und ich versuche, ein paar Abhängigkeiten von package.json zu installieren, und ich bekomme immer den gleichen Fehler. Ich habe die neueste Version und den LTS getestet, und beide gaben denselben Fehler.Fehler bei der Installation von Abhängigkeiten von package.json

package.json

{ 
    "name": "snake-ch3", 
    "dependencies": { 
     "express": "*", 
     "express-generator": "*" 
    }, 
    "devDependencies": { 
     "grunt": "~0.4.5", 
     "grunt-browserify": "~3.4.0", 
     "grunt-contrib-uglify": "~0.8.0", 
     "grunt-contrib-watch": "~0.6.1" 
    } 
} 

und Fehler:

0 info it worked if it ends with ok 
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe', 
1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 
1 verbose cli 'install' ] 
2 info using [email protected] 
3 info using [email protected] 
4 verbose readDependencies loading dependencies from C:\Users\Julian\Desktop\node\ch3\package.json 
5 error install Couldn't read dependencies 
6 verbose stack Error: Failed to parse json 
6 verbose stack No data, empty input at 1:1 
6 verbose stack 
6 verbose stack^
6 verbose stack  at parseError (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:390:11) 
6 verbose stack  at parseJson (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:79:23) 
6 verbose stack  at C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:48:5 
6 verbose stack  at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\graceful-fs.js:78:16 
6 verbose stack  at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:380:3) 
7 verbose cwd C:\Users\Julian\Desktop\node\ch3 
8 error Windows_NT 10.0.14393 
9 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" 
10 error node v4.6.0 
11 error npm v2.15.9 
12 error file C:\Users\Julian\Desktop\node\ch3\package.json 
13 error code EJSONPARSE 
14 error Failed to parse json 
14 error No data, empty input at 1:1 
14 error 
14 error^
15 error File: C:\Users\Julian\Desktop\node\ch3\package.json 
16 error Failed to parse package.json data. 
16 error package.json must be actual JSON, not just JavaScript. 
16 error 
16 error This is not a bug in npm. 
16 error Tell the package author to fix their package.json file. JSON.parse 
17 verbose exit [ 1, true ] 

validiert ich die json auf https://jsonformatter.curiousconcept.com/ und sah im Zusammenhang für json Parsing-Fehler auf "Windows_NT 10.0.14393" und ich bin nicht immer alles.

Ich habe den Knoten ein paar Mal neu installiert, so dass es kein Knoten oder ein Dowloading-Problem ist. Kann mir jemand sagen, ob ich etwas falsch mache?

EDIT

ich tryied nur npm init mit allen Standardwerten ausgeführt wird und die Bearbeitung es dann, damit es die "dependencies" und "devDependencies" hat und es ganz plötzlich funktioniert. Ich habe versucht, es wieder so zu machen, wie ich es vorher getan habe, und ich habe den gleichen Fehler bekommen.

jetzt sieht es wie folgt aus:

package.json

{ 
    "name": "snake-game", 
    "version": "1.0.0", 
    "description": "a simple snake game", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "Julian Avar", 
    "dependencies": { 
    "express": "*", 
    "express-generator": "*" 
    }, 
    "devDependencies": { 
     "grunt": "~0.4.5", 
     "grunt-browserify": "~3.4.0", 
     "grunt-contrib-uglify": "~0.8.0", 
     "grunt-contrib-watch": "~0.6.1" 
    } 
} 
+0

Stellen Sie sicher, dass 'npm config Registrierung erhalten' returns 'http: // registry.npmjs.org /' _without https_ –

+0

Haben Sie diese Datei von irgendwo kopiert oder selbst erstellt? Wenn Sie es selbst erstellt haben, wie haben Sie es erstellt? – Paul

+0

Wenn dies nicht der Fall ist, verwenden Sie 'npm config set registry http: // registry.npmjs.org /', um es einzurichten und dann versuchen, Ihre Pakete zu installieren –

Antwort

1

ich bemerkt habe, dass in vielen Windows-Programmen Dateien oft den Text mit Bytes in einer Weise voranstellen, die Unix verhindern wird, basierend Programme lesen sie richtig (besonders wenn das Unix-Programm eine Struktur wie eine JSON-Datei erwartet). Aus dem Kommentar von @ robertklep gehe ich davon aus, dass es sich um eine Byte Order Mark handelt, aber ich habe den Namen vorher noch nie gekannt.

Der empfohlene Weg ein package.json zu vermeiden, diese Art der Sache zu machen, ist npm init von der Kommandozeile ausgeführt werden, um sowohl OS wonkiness zu vermeiden und auch eine minimal gültigen package.json Sie müssen sicherstellen, dass, wenn alles gesagt und getan ist.

+0

Danke Paul, werde ich von jetzt an tun –

Verwandte Themen