web-dev-qa-db-ja.com

「bower install requirejs-text」で「EMALFORMED Failed bower.jsonの読み取りに失敗しました」

requirejs-text をインストールしようとすると、理解できないエラーが表示されます。

$ bower install requirejs-text
bower                       EMALFORMED Failed to read /Users/bgolder/projects/Explorer/front/bower.json

Additional error details:
Unexpected string

Bower.jsonでは、何も問題はありません。

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

Bowerでverboseオプションを使用すると、このトレースが表示されます。

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

まだ何が悪いのか説明していません。

22
BenjaminGolder

JSONファイルには2つの構文エラーがあります。最初のエラーは、,の後に"bootstrap": "~3.1.1"がないことです。このため、エラーメッセージが表示されました。次の行の"jquery"文字列は予期されていませんでした。このエラーは、ファイルを目で見て調べました。 JavaScriptまたはJSONエディターに読み込むことでも明らかになります。

2番目のエラーは、{}の後のコンマです。 JavaScriptパーサーには問題はありませんが、JSONパーサーには問題があります。 JSONエディターがこの問題を明らかにしたと思います。見つけた新しいエラーメッセージと試行錯誤に依存して、それを発見しました。

修正されたファイルは次のとおりです。

{
  "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

[更新]

ルイの答えはおそらくここで正しいものです!私は参考のために私のものを入れていますが、おそらくOP固有の場合には正しくありません。

[初期回答]

Windowsを使用しており、編集時にbower.jsonファイルにBOMを追加するテキストエディターを使用しています。

それから、bowerはそれを読むことができないので文句を言います(EMALFORMED)-問題が何であるかについて本当に役に立たないとしても、かなり正確です。

解決策:使いにくい(およびBOMを追加しない)テキストエディターを使用して、bower.jsonファイルをゼロから開始します。

同じケースの他の人については herehere をご覧ください。

(これはrequirejs-textとは無関係です-それはyour不正な形式のbower.jsonファイルです)

12
Mangled Deutz