A variety of interfaces are available to customize the compilation process.Some features overlap between interfaces, e.g. a configuration option may beavailable via a CLI flag, while others exist only through a single interface.The following high-level information should get you started.
The Command Line Interface (CLI) to configure and interact with your build. Itis especially useful in the case of early prototyping and profiling. For themost part, the CLI is used to kick off the process using a configurationfile and a few flags (e.g.--env).
When processing modules with webpack, it is important to understand thedifferent module syntaxes – specifically themethodsandvariables – that are supported.
While most users can get away with using the CLI along with aconfiguration file, more fine-grained control of the compilation can beachieved via the Node interface. This includes passing multiple configurations,programmatically running or watching, and collecting stats.
Learn more about the Node API!
Loaders are transformations that are applied to the source code of a module.They are written as functions that accept source code as a parameter and returna new version of that code with transformations applied.
The plugin interface allows users to tap directly into the compilation process.Plugins can register handlers on lifecycle hooks that run at different pointsthroughout a compilation. When each hook is executed, the plugin will have fullaccess to the current state of the compilation.