Build configuration plugins
Modify build configurations without rewriting them!
Mosaic provides an opportunity to modify Webpack and Babel configurations of a project from an isolated module, similarly to the runtime plugins, but not quite.
In CRA setups, CRACO plugin API is available instead of this one.
Preparations
In order to declare a build configuration plugin, some preparations are necessary. First of all, an extension module must be created. You will implement your plugin there.
For the development purposes, it's recommended to have the under-development extension module installed into your project.
Declare a build configuration plugin
Then, in your module, you should create a build configuration plugin declaration file, and reference it from your package.json. It is commonly accepted to create such plugins in build-config
directory in the root of your module.
Any module can have unlimited amount of such plugins. If the module is enabled, or used as a parent theme - its build configuration plugins will be present in the application.
The guide below describes the process of implementing logic in this plugin declaration file.
Modify the configurations
A build configuration plugin declaration file is a CJS module, which exports a single object with plugin
property.
This plugin property defines at least one of the two fields visible below.
Each field provides a function, which accepts a Webpack or Babel configuration object (correspondingly). This function processes the configuration object and returns a new value, used as a corresponding configuration further in the application. It is commonly accepted to mutate the configuration within these functions.
Despite the resemblance with CRACO plugins, this API is not related to CRACO.
Last updated