最近,我的应用程序的Cordova插件恢复开始失败,尽管我的端没有任何更改。我在config.xml和package.json中绝对指定了我的版本,没有插入符号或其他修饰符,以允许安装除我指定的版本之外的其他版本。我不知道是什么原因导致它突然崩溃,我也不明白发生了什么错误。下面是一个相关的错误样本片段,从config.xml指定的插件开始:
Discovered plugin "cordova-plugin-code-push" in config.xml. Adding it to the project
No scripts found for hook "before_plugin_add".
Calling plugman.fetch on plugin "cordova-plugin-code-push@1.10.1"
Running command: npm install cordova-plugin-code-push@1.10.1 --production --no-save
Command finished with error code 0: npm install,cordova-plugin-code-push@1.10.1,--production,--no-save
Copying plugin "/Users/distiller/BallStreetApp/node_modules/cordova-plugin-code-push" => "/Users/distiller/BallStreetApp/plugins/cordova-plugin-code-push"
Calling plugman.install on plugin "/Users/distiller/BallStreetApp/plugins/cordova-plugin-code-push" for platform "ios
Installing "cordova-plugin-code-push" for ios
Running command: /Users/distiller/BallStreetApp/platforms/ios/cordova/version
Command finished with error code 0: /Users/distiller/BallStreetApp/platforms/ios/cordova/version
Dependencies detected, iterating through them...
Requesting plugin "code-push@2.0.4".
Plugin dependency "code-push" not fetched, retrieving then installing.
Running command: npm install code-push@2.0.4 --production --no-save
Command finished with error code 0: npm install,code-push@2.0.4,--production,--no-save
Copying plugin "/Users/distiller/BallStreetApp/node_modules/code-push" => "/Users/distiller/BallStreetApp/plugins/code-push"
Installing "code-push" for ios
Finding scripts for "before_plugin_install" hook from plugin code-push on ios platform only.
No scripts found for hook "before_plugin_install".
Install start for "code-push" on ios.
Beginning processing of action stack for ios project...
Action stack processing complete.
Install complete for code-push on ios.
Finding scripts for "after_plugin_install" hook from plugin code-push on ios platform only.
No scripts found for hook "after_plugin_install".
Requesting plugin "cordova-plugin-file@>=4.3.0".
Plugin dependency "cordova-plugin-file" not fetched, retrieving then installing.
Running command: npm install cordova-plugin-file@>=4.3.0 --production --no-save
Command finished with error code 0: npm install,cordova-plugin-file@>=4.3.0,--production,--no-save
Copying plugin "/Users/distiller/BallStreetApp/node_modules/cordova-plugin-file" => "/Users/distiller/BallStreetApp/plugins/cordova-plugin-file"
Installing "cordova-plugin-file" for ios
Finding scripts for "before_plugin_install" hook from plugin cordova-plugin-file on ios platform only.
No scripts found for hook "before_plugin_install".
Install start for "cordova-plugin-file" on ios.
Beginning processing of action stack for ios project...
Action stack processing complete.
Install complete for cordova-plugin-file on ios.
Finding scripts for "after_plugin_install" hook from plugin cordova-plugin-file on ios platform only.
No scripts found for hook "after_plugin_install".
Requesting plugin "cordova-plugin-file-transfer@>=1.3.0".
Plugin dependency "cordova-plugin-file-transfer" not fetched, retrieving then installing.
Running command: npm install cordova-plugin-file-transfer@>=1.3.0 --production --no-save
Command finished with error code 0: npm install,cordova-plugin-file-transfer@>=1.3.0,--production,--no-save
Copying plugin "/Users/distiller/BallStreetApp/node_modules/cordova-plugin-file" => "/Users/distiller/BallStreetApp/plugins/cordova-plugin-file"
Failed to install 'cordova-plugin-code-push': Error: Expected plugin to have ID "cordova-plugin-file-transfer" but got "cordova-plugin-file".
at checkID (/Users/distiller/BallStreetApp/node_modules/cordova-lib/src/plugman/fetch.js:215:15)
at /Users/distiller/BallStreetApp/node_modules/cordova-lib/src/plugman/fetch.js:199:9
at _fulfilled (/Users/distiller/BallStreetApp/node_modules/q/q.js:787:54)
at self.promiseDispatch.done (/Users/distiller/BallStreetApp/node_modules/q/q.js:816:30)
at Promise.promise.promiseDispatch (/Users/distiller/BallStreetApp/node_modules/q/q.js:749:13)
at /Users/distiller/BallStreetApp/node_modules/q/q.js:557:44
at flush (/Users/distiller/BallStreetApp/node_modules/q/q.js:108:17)
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickCallback (internal/process/next_tick.js:180:9)
Failed to restore plugin "cordova-plugin-code-push" from config.xml. You might need to try adding it again. Error: Error: Expected plugin to have ID "cordova-plugin-file-transfer" but got "cordova-plugin-file".我不确定它是如何被弄糊涂的,并开始尝试寻找一个包,而它显然是在试图安装另一个包。
这是在Cordova 7.1上,但我也尝试过短暂地升级到Cordova 8,看看它是否解决了这个问题。(事实并非如此。)
我将问题标记为Ionic。我使用的不是Ionic,而是因为如果我也通过Ionic工具集执行恢复,则可能会发生相同的错误,因为它是Cordova上的一个薄薄的包装器。
发布于 2018-05-29 10:20:41
这似乎已经在cordova-plugin-code-push的v1.11.11中修复(参见PR #411)。注如果您有NPM v5.x或更高版本,您可能还需要删除或手动更新package-lock.json文件中cordova-plugin-code-push的记录。
https://stackoverflow.com/questions/48929278
复制相似问题