Lorsque j'essaie d'installer requirejs-text
, je reçois une erreur que je ne comprends pas.
$ bower install requirejs-text
bower EMALFORMED Failed to read /Users/bgolder/projects/Explorer/front/bower.json
Additional error details:
Unexpected string
Dans bower.json, je ne vois rien de mal.
{
"name": "front",
"version": "0.0.0",
"dependencies": {
"bootstrap": "~3.1.1"
"jquery": "~1.10.2",
"requirejs": "~2.1.9",
"requirejs-text": "~2.0.10",
"underscore": "~1.5.2",
"backbone": "~1.1.0",
"modernizr": "~2.6.2"
},
"devDependencies": {},
}
Si j'utilise l'option verbeuse sur bower, j'obtiens cette trace.
bower EMALFORMED Failed to read /Users/bgolder/projects/Explorer/front/bower.json
Additional error details:
Unexpected string
Stack trace:
SyntaxError: Unexpected string
at Object.parse (native)
at /usr/local/lib/node_modules/bower/node_modules/bower-json/lib/json.js:41:29
at fs.js:266:14
at /usr/local/lib/node_modules/bower/node_modules/graceful-fs/graceful-fs.js:104:5
at Object.oncomplete (fs.js:107:15)
From previous event:
at readJson (/usr/local/lib/node_modules/bower/lib/util/readJson.js:17:6)
at Project._readJson (/usr/local/lib/node_modules/bower/lib/core/Project.js:539:25)
at Project._analyse (/usr/local/lib/node_modules/bower/lib/core/Project.js:445:14)
at Project.install (/usr/local/lib/node_modules/bower/lib/core/Project.js:47:17)
Console trace:
Trace
at StandardRenderer.error (/usr/local/lib/node_modules/bower/lib/renderers/StandardRenderer.js:74:17)
at Logger.<anonymous> (/usr/local/lib/node_modules/bower/bin/bower:114:22)
at Logger.EventEmitter.emit (events.js:95:17)
at Logger.emit (/usr/local/lib/node_modules/bower/node_modules/bower-logger/lib/Logger.js:29:39)
at /usr/local/lib/node_modules/bower/lib/commands/install.js:35:16
at _rejected (/usr/local/lib/node_modules/bower/node_modules/q/q.js:797:24)
at /usr/local/lib/node_modules/bower/node_modules/q/q.js:823:30
at Promise.when (/usr/local/lib/node_modules/bower/node_modules/q/q.js:1035:31)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/bower/node_modules/q/q.js:741:41)
at /usr/local/lib/node_modules/bower/node_modules/q/q.js:557:44
System info:
Bower version: 1.3.1
Node version: 0.10.26
OS: Darwin 13.1.0 x64
Ce qui n'explique toujours pas ce qui ne va pas.
Il y a deux erreurs de syntaxe dans votre fichier JSON. La première erreur était un ,
Manquant après "bootstrap": "~3.1.1"
. C'est pourquoi vous avez reçu le message d'erreur que vous aviez. La chaîne "jquery"
Sur la ligne suivante n'était pas attendue. J'ai trouvé cette erreur en inspectant votre fichier à l'œil nu. Le charger dans un éditeur JavaScript ou JSON l'aurait également révélé.
La deuxième erreur était la virgule après {}
. Un analyseur JavaScript n'aura pas de problème avec lui, mais l'analyseur JSON le fait. Je suppose qu'un éditeur JSON aurait révélé ce problème. Je l'ai découvert en m'appuyant sur le nouveau message d'erreur que j'ai reçu et les essais et erreurs.
Voici le fichier fixe:
{
"name": "front",
"version": "0.0.0",
"dependencies": {
"bootstrap": "~3.1.1",
"jquery": "~1.10.2",
"requirejs": "~2.1.9",
"requirejs-text": "~2.0.10",
"underscore": "~1.5.2",
"backbone": "~1.1.0",
"modernizr": "~2.6.2"
},
"devDependencies": {}
}
[MISE À JOUR]
La réponse de Louis est probablement la bonne ici! Je laisse le mien à titre de référence, mais ce n'est probablement pas correct pour le cas spécifique OP.
[RÉPONSE INITIALE]
Vous êtes sous Windows et vous utilisez un éditeur de texte qui ajoute une nomenclature à votre fichier bower.json lors de sa modification.
Ensuite, Bower s'en plaint car il ne peut pas le lire (EMALFORMÉ) - ce qui est assez précis, sinon vraiment utile sur le problème.
La solution: démarrez votre fichier bower.json à partir de zéro, en utilisant un éditeur de texte qui ne craint pas (et n'ajoute pas de nomenclature).
Voir ici , et ici , pour d'autres personnes dans le même cas.
(et ceci n'est pas lié à requirejs-text - c'est votre fichier bower.json qui est mal formé)