當你用 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編碼格式就解決了。