-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: repeat runtime plugin key #11590
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Ignored Deployment
|
这个地方建议变成 throw new Error(`The plugin key cannot be duplicated. (${result.join(', ')})`) 并告知用户重复添加 key 了,因为重复添加 key 本来就是不合理的行为,应该避免明确告诉用户不要做错误的行为而不是容许。 |
感谢回复 我先明确说一下我的应用场景,我需要N多个微前端项目公用一套运行时配置,但根据#11384 (comment) 回复道目前不支持一个export default导出所有运行时配置。 export * from '@app/runtime'; 但我发现这么做的话某些插件例如 后来又发现没有被注册到 最后,我才提个这个pr。 所以如果直接抛错,我就需要再维护一份 如果非要提示避免重复key的产生,我希望能是 |
重复 key 本身是一种错误的使用方式,应该在使用时就避免添加重复的 key ,而不是内部明知有错误还容许错误继续存在。 |
那换成警告可行吗? |
我的建议是不能继续保留错误的行为,因为当报错出现了,用户就知道要对自己的插件做一定的调整,改成正确的行为,只要不报错,一切都是正确的,而不是用户做了错误的行为还可以运行,这样只会变成用户不知道应该添加哪些 key ,最后每个人就会把所有的 key 都 copy 一份,每个人的代码都很混乱。 |
改过了 |
Codecov ReportPatch coverage has no change and project coverage change:
Additional details and impacted files@@ Coverage Diff @@
## master #11590 +/- ##
==========================================
- Coverage 29.01% 28.99% -0.03%
==========================================
Files 484 484
Lines 14710 14721 +11
Branches 3476 3479 +3
==========================================
Hits 4268 4268
- Misses 9686 9696 +10
- Partials 756 757 +1
☔ View full report in Codecov by Sentry. |
基于某些特殊场景我需要通过插件执行
addRuntimePluginKey
,处于umi限制我无法知道哪些key已经被添加,所以我可能会重复add,但最终产物中会产生重复的key
,例如两个layout
、两个qiankun
等等,所以我想它需要被去重。