-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
目前 webpack 众多复杂的配置均由 webpack-marauder 中心化管理,如此设计的目的在于减少 webpack 内在的使用成本,为业务人员提供开箱即用的工程化支持。以目前的运行情况来看,webpack-marauder 已足以应对中大型规模的业务。
然而这种中心化的“独裁”也势必会丧失部分的”民主“,对于一些特殊的定制需求难以快速支持。如增加 babel-plugin 或 webpack-plugin,现阶段只能通过两种途径:
- 向维护者提交 issues 或 pull request 经过评审, 升级工具
- 将 webpack-marauder fork 到项目中,做本地修改
由于 webpack-marauder 的主旨是提供简单轻量的服务,以帮助业务人员快速构建项目,简单与轻量是其核心理念之一。对于一些非通用的拓展需求,我们并不建议作为 feature 加入其中,因为这些功能可能只是极少数人受益,但对于绝大部分用户而言,这些 feature 则代表日益臃肿的包体积,以及难以预知的潜在问题。
对于第二种方式,可以取得完整的控制权,但操作过于繁琐,也需要消耗额外的时间进行调试。
综上,应设计一种拓展插件机制,在允许范围内对 webpack-marauder 的构建配置进行干预,现阶段的目标是解决自定义 babel-plugin 以及 webpack-plugin 拓展。
可行方案为通过引用额外的脚本文件,调用 marauder 暴露的插件注册 API
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels