web-dev-qa-db-fra.com

"EMALFORMED Impossible de lire bower.json" sur "bower install requirejs-text"

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.

22
BenjaminGolder

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": {}
}
31
Louis

[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é)

12
Mangled Deutz