"在bower install requirejs-text"中"EMALFORMED无法读取bower.json"

Ben*_*der 22 javascript requirejs bower

当我尝试安装时requirejs-text,我收到一个我不明白的错误.

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

Additional error details:
Unexpected string
Run Code Online (Sandbox Code Playgroud)

在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": {},
}
Run Code Online (Sandbox Code Playgroud)

如果我在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
Run Code Online (Sandbox Code Playgroud)

这还没有解释什么是错的.

Lou*_*uis 31

JSON文件中存在两个语法错误.第一个错误是失踪,"bootstrap": "~3.1.1".这就是您收到错误消息的原因."jquery"下一行的字符串不是预期的.我通过检查你的文件发现了这个错误.在JavaScript或JSON编辑器中加载它也会显示它.

第二个错误是之后的逗号{}.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": {}
}
Run Code Online (Sandbox Code Playgroud)


Man*_*utz 12

[UPDATE]

路易斯的回答可能是正确的!我正在让我参考,但对于OP特定情况可能不正确.

[初始答复]

您在Windows上,并且您正在使用文本编辑器,在编辑时将BOM添加到bower.json文件中.

然后凉亭抱怨它,因为它无法读取它(EMALFORMED) - 这是非常准确的,如果不是真正有用的问题是什么.

解决方案:使用不太糟糕的文本编辑器(并且不添加BOM)从头开始使用bower.json文件.

参见这里,并在这里,在相同情况下其他人.

(这与requirejs-text无关 - 这是你的 bower.json文件格式错误)