当我尝试安装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 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
仍然没有解释什么是错误的。
答案 0 :(得分: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": {}
}
答案 1 :(得分:12)
[UPDATE]
路易斯的答案可能是正确的答案!我正在让我参考,但对于特定情况的OP案例可能不正确。
[INITIAL ANSWER]
您在Windows上,并且您正在使用文本编辑器,在编辑时将BOM添加到您的bower.json文件中。
然后bower抱怨它,因为它无法读取它(EMALFORMED) - 这是非常准确的,如果不是真正有用的问题是什么。
解决方案:使用不太糟糕的文本编辑器(并且不添加BOM)从头开始使用bower.json文件。
(这与requirejs-text无关 - 它是你的 bower.json文件格式错误)
答案 2 :(得分:-1)
我的解决方案中的.bower.json文件出现了类似的错误,由于某种原因,该文件的内容在自动化过程中被删除了。我能够删除该文件并从源代码控制中取回它,这解决了我的问题。