mip-project / mip

MIT License
11 stars 1 forks source link

开发者引入第三方 lib 库的问题 #6

Open PengXing opened 6 years ago

PengXing commented 6 years ago

开发者在开发组件的过程中,不一定书写的全部都是单个的 vue 文件

  1. 引入第三方库,比如说 d3/echarts
  2. 组件之间共享 JS 文件

在这两种需求里,怎么做到我们想要的安全性?

第三方库很有可能会使用到 window 中的 JS 方法

easonyq commented 6 years ago

应该在开发组件的过程中禁用第三方库吧,原因如下:

  1. 开发者使用第三方库,不应该了解它的内部实现方式,也就是他不应该知道那个库用了哪些 window 的方法。(实际上就算知道,如果这个库又用了其他库,也无济于事)
  2. 编写受限的 window 对象并重载同名方法。让开发者来进行难度较大且无法互相复用;由 MIP 来提供略微合理,但工作量相当大

至于共享 JS,毕竟组件都是独立的,最终打包成一个 JS 单独可运行。即便在开发时存在共享 JS 文件,打包发布之后这些共享的 JS 依然还是重复地存在于每个组件中。略微合理的做法是 MIP 提供一些常用的方法,覆盖不到的就只能复制了。

tayqassqan commented 6 years ago

第三方库还是有需求的,除非我们自己做了很多集成和封装。这里可能需要权衡。

PengXing commented 6 years ago

第三方库这个确实很难搞。。我们要再考虑一下

windtalkers commented 6 years ago

第三方库,我们可以统一来审核准入,按照一定得标准进行引入: 比如涉及到DOM操作的,怎么封装? 不涉及到dom操作的,怎么封装给应用? 如果能最终产出给第三方一个component,则就是一个component,如果不是,则以另外一种形式,比如amd的一个model,但是,调用只能怎么来做

PengXing commented 6 years ago

暂定只允许开发者引用在我们白名单中的组件库,如果需要添加额外的,需要申请