Cordova 7.1.0添加/移除插件、平台速度极慢问题求助
关于Cordova 7.1.0操作耗时与
--nofetch的解惑 太懂这种明明只是个移除操作,却要等半天的烦躁了!咱们一点点拆解你的问题:
为什么移除操作会触发fetch?
Cordova在执行平台/插件移除时,默认会启动依赖完整性校验机制——哪怕你是删东西,它也会尝试拉取远程仓库的最新依赖元数据(比如插件版本信息、平台兼容列表),用来更新项目package.json或config.xml里的依赖记录,确保剩余环境的“合规性”。这就是移除操作也会走fetch步骤的原因,本质是框架自带的依赖校验逻辑在起作用。
而--nofetch选项的核心作用,就是跳过远程校验和元数据拉取,直接用本地缓存的依赖信息执行操作,这也是加了这个参数后移除仅需4-5秒的关键——省去了和远程仓库的交互耗时。
为什么重建项目后操作速度变快?
重建项目后,你的本地Cordova缓存(一般在~/.cordova目录下)已经存好了所有41个插件和对应平台的完整包,而且全新生成的package.json、config.xml没有冗余依赖记录或版本冲突残留。这时候执行操作,Cordova不需要重新从远程拉取大量资源,直接调用本地缓存就能完成,自然速度飙升。而旧项目用久了,可能积累了无效缓存、冲突记录,导致每次操作都要额外做很多校验和拉取工作。
针对你场景的小建议
- 既然依赖
--nofetch,可以把参数封装成npm脚本,避免手动重复输入:// 在项目package.json中添加 "scripts": { "remove:platform": "cordova platform remove android --nofetch", "add:plugin": "cordova plugin add [插件名] --nofetch" } - 定期清理Cordova本地缓存(执行
rm -rf ~/.cordova)后重新构建,能有效避免缓存冗余带来的慢问题。
内容的提问来源于stack exchange,提问作者huggie
相关产品推荐
相关产品推荐

