Lorsque j'essaie d'installer Express avec NPM, l'erreur suivante persiste:
Failed to parse json
No data, empty input at 1:1
File: /root/.npm/inherits/2.0.1/package/package.json
Failed to parse package.json data.
package.json must be actual JSON, not just JavaScript.
This is not a bug in npm.
Tell the package author to fix their package.json file. JSON.parse
Qu'est-ce que je fais mal?
Sudo npm install -g express
OS est sous Ubuntu 12.04 (précis) armhf
J'ai eu le même problème mais "npm cache clean" ne l'a pas résolu pour moi. Je devais revenir à mon package.json et réaliser que j'avais une virgule où il ne devrait pas, je suppose, comme indiqué ci-dessous:
},
"devDependencies": {
"axios": "^0.15.3",
"bootstrap-sass": "^3.3.7",
"cross-env": "^3.2.4",
"jquery": "^3.1.1",
"laravel-mix": "0.*",
"lodash": "^4.17.4",
"vue": "^2.1.10",
}
après la "vue ..." donc j'ai supprimé cela et tout est revenu à la normale. Donc, il est mérite de vérifier le fichier package.json avant de lancer} __ npm cache clean
Dans le projet Laravel:
Généralement, cette erreur est due à une erreur de syntaxe dans le fichier package.json . Dans mon cas, l'accolade d'ouverture pour l'objet dépendances dans package.json était manquante: -
Code--------------------------------
{
"name": "psrxjs",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies":
"rxjs": "^5.4.3"
}
}
J'ai également reçu le même message d'erreur lors de l'exécution de npm install
; exécutez d'abord npm package.json
pour vérifier les erreurs dans le fichier package.json. Sinon, exécutez npm cache clean
En plus de Pank'srépondre , si vous rencontrez ce genre d'erreur
npm ERR! code EJSONPARSE
npm ERR! JSON.parse Failed to parse json
npm ERR! JSON.parse Unexpected token } in JSON at position 550 while parsing near '...eact": "^7.12.4",
npm ERR! JSON.parse },
npm ERR! JSON.parse "dependencies":...'
npm ERR! JSON.parse Failed to parse package.json data.
npm ERR! JSON.parse package.json must be actual JSON, not just JavaScript.
Vous devez vous assurer que votre package.json
est un json valide, pas un javascript.
Dans mon cas Missing a comma somewhere in a package.json
Vérifiez votre fichier package.json . Après ce Sudo npm install
ou
Pour nettoyer la mémoire cache .Sudo npm cache clean
Le script bash suivant résout le problème automatiquement
#!/usr/bin/env bash
echo -e '#!/usr/bin/env bash' > npm_install.sh
cat npm-debug.log | grep 'error File:' | sed -n 's:.*error File\: \(.*\):echo "Removing \1"\nrm -f \1\necho "Cleaning npm cache"\nnpm cache clean\necho "Reinstalling npm"\nnpm install\n./npm_reinstall.sh:p' >> npm_install.sh
chmod +x npm_install.sh
./npm_install.sh
Il devrait être enregistré dans npm_reinstall.sh Et disposer des autorisations d’exécution avec
chmod +x npm_reinstall.sh
Le script effectue les tâches suivantes:
Pour plus d’informations sur l’installation de npm, voir la documentation de la commande npm-install
J'ai rencontré un problème similaire aujourd'hui après la mise à jour de Node sous Windows 10. Mes tâches de génération locales ont commencé à échouer. Après enquête, j'ai constaté toutes ces erreurs dans mes fichiers de dépendance package.json. JSON n’était plus valide et je voyais des messages du type:
npm WARN Failed to parse json
npm WARN Unexpected token '\u0019' at 1:1
npm WARN ������2�����bE�;���1L �\5�e���k2?��,?;��쏏a��(T��w��+I��/�6�P} ��i�|e�
npm WARN ^
dans ma console.
Cette histoire a une fin heureuse car il s'avère que le nouveau Nœud ne joue pas avec Nice avec l'ancien NPM et la mise à jour de NPM vers la version 5 a résolu le problème. J'espère que cela aidera d'autres personnes susceptibles de subir cette variation sur ce sujet.
J'ai rencontré ce problème plusieurs fois avant de m'habituer à utiliser NPM. La plupart du temps, c'était parce que je n'avais pas utilisé npm init avant l'installation de npm