新版本更新的时候,经常会有跟插件的冲突导致启动不了。所以能不能变成保障本体启动,有冲突的插件自动禁用? #5869
Replies: 2 comments 1 reply
|
这个诉求社区已经从几个方向提过了,串一下方便推动官方:#5242(插件出问题不该拖垮主程序,同样的建议)、#5216(有人直接写了"自动禁用失败插件"的启动脚本)、#5106(插件加载缺故障隔离,一个插件挂全树倒)。加上你这个,说明是普遍痛点。 官方实现之前,升级翻车时的自救姿势(#5860 楼里刚验证过的判别法):
|
|
这个诉求跟 #5864(插件 import 一个 bundled core 没有的导出 → 整个 profile boot 崩溃 + crash-loop)是同一根因的两面,值得一起看。按 master
也就是说今天没有任何"本体先启动、插件失败只禁自己"的路径——一条插件失败 = 整个 app 不启动。这个设计对开发期是对的(作者需要立刻知道自己的插件坏了),但对终端用户是灾难性的:升级把不兼容插件拉进来 → 启动即崩 → 用户只能手工编辑 cordis.yml 把 建议的修复形状(三层)
现状逃生口(升级遇冲突时今天就能用)plugins:
entry:
<冲突插件名>:
disabled: true
插件面判定:boot 策略(何时问、谁被禁、怎么报告)是 core loader 层的决策点,插件无法在 loader 之前运行来救自己——缺口在 core,插件是受害者(#5864 已证)。但确认后插件可以承接 UX 侧:启动报告渲染、quarantine 清单 UI、一键 re-enable(像 #5861 那种小 core UI + 插件补强)。维护者若认可 resilient 方向,这个和 #5864 的 per-entry fail-soft 是同一份 diff 的两个面。 |
Uh oh!
There was an error while loading. Please reload this page.
如题
All reactions