当你用 Visual Studio 2015 Update 3 打开从别处下载的开源项目的时候,如果发现 Bower 提示 "bower.json 中出现语法错误"。
请检查一下.bowerrc文件的编码格式是否为ANSI,如果不是,可以用Notepad++等文本编辑器工具,转换编码格式。
事情经过是这样的:
我从Github上pull了一份带有Web的项目,然后在 Visual Studio 2015 Update 3 打开,发现 Bower 提示 "bower.json 中出现语法错误"。
顺着这个错误提示,理所当然地认为是Web项目下的bower.json文件有语法错误。
我打开这个文件,copy了文件内容,到网上找了个json在线校验(www.bejson.com),发现并没有语法错误。
于是,我尝试把bower.json做了个备份(PS:其实是重命名)。
然后对照这个备份文件,打算用Bower重新安装依赖关系。
当我安装jquery的时候,Bower报了一个错误:
PATH=.\node_modules\.bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External;%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\git
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\Bower.cmd" install jquery#2.2. --force-latest --save
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower-config\lib\util\rc.js:
throw error;
^
Error: Unable to parse D:\source\xxx\src\xxx.Web\.bowerrc: Unexpected token
at parse (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower-config\lib\util\rc.js::)
at C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower-config\lib\util\rc.js::
at Array.forEach (native)
at json (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower-config\lib\util\rc.js::)
at rc (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower-config\lib\util\rc.js::)
at Config.load (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower-config\lib\Config.js::)
at readCachedConfig (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower\lib\config.js::)
at defaultConfig (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower\lib\config.js::)
at Object.<anonymous> (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower\lib\index.js::)
at Module._compile (module.js::)
顺着提示,*上Google搜了一下,在这 http://*.com/questions/24534974/emalformed-failed-to-read-bower-json-unexpected-token 找到了答案,大体意思就是文件编码格式不对,转换成ANSI编码格式就解决了。