我在从 cordova 安装插件时遇到一些问题,因为我收到此错误:
SyntaxError: Unexpected end of input
命令:
cordova -v
结果:
4.3.0
命令:
cordova plugin add org.apache.cordova.camera
结果:
Fetching plugin "org.apache.cordova.camera" via plugin registry
SyntaxError: Unexpected end of input
at Object.parse (native)
at getJson (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\util\metadata.js:29:31)
at Object.exports.save_fetch_metadata (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\util\metadata .js:56:24)
at C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\fetch.js:148:18
at _fulfilled (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:787:54)
at self.promiseDispatch.done (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:816:30)
at Promise.promise.promiseDispatch (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:749:13)
at C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:557:44
at flush (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:108:17)
at process._tickCallback (node.js:419:13)
命令:
cordova plugin add https://github.com/phonegap-build/PushPlugin.git
结果:
Fetching plugin "https://github.com/phonegap-build/PushPlugin.git" via git clone
SyntaxError: Unexpected end of input
at Object.parse (native)
at getJson (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\util\metadata.js:29:31)
at Object.exports.save_fetch_metadata (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\util\metadata .js:56:24)
at C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\fetch.js:148:18
at _fulfilled (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:787:54)
at self.promiseDispatch.done (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:816:30)
at Promise.promise.promiseDispatch (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:749:13)
at C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:557:44
at flush (C:\Users\Mayank\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:108:17)
at process._tickCallback (node.js:419:13)
我的项目文件中似乎发生了一些变化,因为相同的插件正确添加,在新项目中没有任何错误。但我真的不明白发生了什么变化。
我的 fetch.json 也已损坏。我通过 jsonlint.com 运行它并立即找到了丢失的逗号。
已经有一段时间了,但我刚刚通过恢复合并后损坏的 fetch.json 文件上的更改来修复了我的项目。
这个问题很旧,但由于问题仍然存在并且这个问题出现了,我想我会添加:
检查我的 fetch.json 没有损坏并按照此处的建议更新 NPM 和 Node 后,我发现通过 github url 而不是 npm 名称添加插件可以避免此错误。