egg自定义插件会将一些属性挂载到app或者ctx上,插件多起来之后这样不会导致冲突吗?比如2个插件都挂载相同名字的属性到app上。这样的设计符合规范吗
@atian25 大佬能解答下吗
1.会 2.如果插件是用addSingleton挂载到app上会有assert,但如果是手动this.app.xxx这样的方式那就无能为力了,不过在使用插件之前应该要看一下对应的api,确保没有冲突再引用
@DerekYeung 是的目前我也准备这么做了 引入之前先看看挂载的属性
插件是你自行引入的,当然要看有没有冲突啦。
框架层面不会去约束这个,因为插件的一个职责是实现『差异化』,即我们允许多个插件的 package 的 eggPlugin.name 为同一个,从而实现插件替换对用户无感知。
@atian25 学习了 谢谢
这里其实对插件开发者是有约束的,插件的开发是需要有一定规范的。
如果只是插件里面自己使用的,不要乱挂,一般要挂在自己的命名空间上,或者用 Symbol 搞个私有属性。
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
@atian25 大佬能解答下吗
1.会 2.如果插件是用addSingleton挂载到app上会有assert,但如果是手动this.app.xxx这样的方式那就无能为力了,不过在使用插件之前应该要看一下对应的api,确保没有冲突再引用
@DerekYeung 是的目前我也准备这么做了 引入之前先看看挂载的属性
插件是你自行引入的,当然要看有没有冲突啦。
框架层面不会去约束这个,因为插件的一个职责是实现『差异化』,即我们允许多个插件的 package 的 eggPlugin.name 为同一个,从而实现插件替换对用户无感知。
@atian25 学习了 谢谢
这里其实对插件开发者是有约束的,插件的开发是需要有一定规范的。
如果只是插件里面自己使用的,不要乱挂,一般要挂在自己的命名空间上,或者用 Symbol 搞个私有属性。