Skip to content

拓展插件支持 #6

@vv314

Description

@vv314

目前 webpack 众多复杂的配置均由 webpack-marauder 中心化管理,如此设计的目的在于减少 webpack 内在的使用成本,为业务人员提供开箱即用的工程化支持。以目前的运行情况来看,webpack-marauder 已足以应对中大型规模的业务。

然而这种中心化的“独裁”也势必会丧失部分的”民主“,对于一些特殊的定制需求难以快速支持。如增加 babel-plugin 或 webpack-plugin,现阶段只能通过两种途径:

  1. 向维护者提交 issues 或 pull request 经过评审, 升级工具
  2. 将 webpack-marauder fork 到项目中,做本地修改

由于 webpack-marauder 的主旨是提供简单轻量的服务,以帮助业务人员快速构建项目,简单与轻量是其核心理念之一。对于一些非通用的拓展需求,我们并不建议作为 feature 加入其中,因为这些功能可能只是极少数人受益,但对于绝大部分用户而言,这些 feature 则代表日益臃肿的包体积,以及难以预知的潜在问题。

对于第二种方式,可以取得完整的控制权,但操作过于繁琐,也需要消耗额外的时间进行调试。

综上,应设计一种拓展插件机制,在允许范围内对 webpack-marauder 的构建配置进行干预,现阶段的目标是解决自定义 babel-plugin 以及 webpack-plugin 拓展。

可行方案为通过引用额外的脚本文件,调用 marauder 暴露的插件注册 API

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions