EMALFORMED error when trying to register bower.json file
我在Bower注册我的bower.json文件时遇到了麻烦。 任何帮助将不胜感激。
当我尝试在Bower注册我的项目时
1 | bower register jsnlog git://github.com/mperdeck/jsnlog.js.git -V |
我收到错误消息:
1 2 3 4 5 | bower jsnlog#* EMALFORMED Failed to read C:\Users\mperdeck\AppData\Local\Temp\mperdeck-PC-mperdeck\bower\js nlog-6944-x00dtF\bower.json Additional error details: Unexpected token ? |
我的bower.json的内容很简单(为了解决问题,我摆脱了空格和换行符):
1 | {"name":"jsnlog.js","main":"jsnlog.js","version":"2.4.3"} |
(请注意,该文件中没有?)
以下是我运行bower寄存器时屏幕上显示的详细信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | PS D:\dev\jsnlog\jsnlog.js> bower register jsnlog git://github.com/mperdeck/jsnlog.js.git -V bower jsnlog#* resolve git://github.com/mperdeck/jsnlog.js.git#* bower jsnlog#* download https://github.com/mperdeck/jsnlog.js/archive/2.4.3.tar.gz bower jsnlog#* extract archive.tar.gz bower jsnlog#* EMALFORMED Failed to read C:\Users\mperdeck\AppData\Local\Temp\mperdeck-PC-mperdeck\bower\js nlog-6944-x00dtF\bower.json Additional error details: Unexpected token ? Stack trace: SyntaxError: Unexpected token ? at Object.parse (native) at C:\Users\mperdeck\AppData oaming pm ode_modules\bower ode_modules\bower-json\lib\json.js:41:29 at fs.js:266:14 at C:\Users\mperdeck\AppData oaming pm ode_modules\bower ode_modules\graceful-fs\graceful-fs.js:105:5 at Object.oncomplete (fs.js:107:15) Console trace: Trace at StandardRenderer.error (C:\Users\mperdeck\AppData oaming pm ode_modules\bower\lib enderers\StandardRenderer.j s:74:17) at Logger.updateNotifier.packageName (C:\Users\mperdeck\AppData oaming pm ode_modules\bower\bin\bower:109:18) at Logger.EventEmitter.emit (events.js:95:17) at Logger.emit (C:\Users\mperdeck\AppData oaming pm ode_modules\bower ode_modules\bower-logger\lib\Logger.js:29: 39) at C:\Users\mperdeck\AppData oaming pm ode_modules\bower\lib\commands egister.js:86:20 at _rejected (C:\Users\mperdeck\AppData oaming pm ode_modules\bower ode_modules\q\q.js:808:24) at C:\Users\mperdeck\AppData oaming pm ode_modules\bower ode_modules\q\q.js:834:30 at Promise.when (C:\Users\mperdeck\AppData oaming pm ode_modules\bower ode_modules\q\q.js:1079:31) at Promise.promise.promiseDispatch (C:\Users\mperdeck\AppData oaming pm ode_modules\bower ode_modules\q\q.js:752 :41) at C:\Users\mperdeck\AppData oaming pm ode_modules\bower ode_modules\q\q.js:574:44 System info: Bower version: 1.2.8 Node version: 0.10.26 OS: Windows_NT 6.1.7601 x64 |
您的bower json文件(在此处可见:https://raw.github.com/mperdeck/jsnlog.js/2.4.3/bower.json)包含一个领先的隐形unicode字符(可能是BOM)。
这在卷曲输出中可见:
从头开始你的bower.json文件,并使用一个不添加垃圾的编辑器:-)。
我通过使用vim打开文件并使用无炸弹保存来解决此问题。
1 2 | :setlocal nobomb :w |
问题是由我的bower.json文件编码引起的。 但是,删除BOM是不够的 - 接受了UTF8(没有BOM)。 相反,我不得不使用ASCII编码。