当你用 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.0 --force-latest --save C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower-config\lib\util\rc.js:71 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:64:21) at C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower-config\lib\util\rc.js:97:20 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:89:14) at rc (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower-config\lib\util\rc.js:34:13) at Config.load (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower-config\lib\Config.js:16:20) at readCachedConfig (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower\lib\config.js:15:39) at defaultConfig (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower\lib\config.js:11:12) at Object.<anonymous> (C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\node_modules\bower\lib\index.js:16:32) at Module._compile (module.js:397:26)
顺着提示,FQ上Google搜了一下,在这 http://stackoverflow.com/questions/24534974/emalformed-failed-to-read-bower-json-unexpected-token 找到了答案,大体意思就是文件编码格式不对,转换成ANSI编码格式就解决了。