@hashicorp/prebuild-webpack-plugin

Process files before starting your webpack build

Usage no npm install needed!

<script type="module">
  import hashicorpPrebuildWebpackPlugin from 'https://cdn.skypack.dev/@hashicorp/prebuild-webpack-plugin';
</script>

README

Prebuild Webpack Plugin

The Problem

In some cases, you may need to do some file processing/manipulation before your webpack build starts. For instance, if you needed to transform files or do some I/O for certain files before webpack's build process starts, this plugin provides a nice interface for completing these specific tasks

Installation

npm install --save prebuild-webpack-plugin

Usage

plugins: [
    new PrebuildPlugin({
      build: (compiler, compilation, matchedFiles) => {
        // function that runs on compile, as well as when dev mode starts for the first time only
      },
      watch: (compiler, compilation, changedFile) => {
        // function that runs each time webpack rebuilds in dev mode. if `files.pattern` is provided,
        // this function will only fire if the most recently changed file matches the specified pattern
      },
      // the files object allows for file matching, providing an array
      // of matching files as the last parameter to the `build` option.
      files: { matcher: '**/*.md', options: {}, addFilesAsDependencies: true }
    }),
    ...
]

Options

build

function(compiler: any, compilation: any, matchedFiles: string[]): Promise<any> | required

A function that's called once, before webpack runs initial build.

  • compiler: An instance of the webpack compiler.
  • compilation: An instance of the webpack compilation.
  • matchedFiles: Returns matches from files.matcher if present.

watch

function(compiler: any, compilation: any, changedFile: string[]): Promise<any> | optional

A function that's called each time webpack rebuilds in dev mode. If files.pattern is provided, this function only fires when the last changed file matches with provided pattern.

  • compiler: An instance of the webpack compiler.
  • compilation: An instance of the webpack compilation.
  • changedFile: Most recently changed file from previous compilation.

files

object | optional

Property Type Description
pattern string A minimatch glob pattern. Matched files are provided as the last parameter to the build option.
options object All valid object properties are documented here.
addFilesAsDependencies boolean Flag indicating whether or not to explicitly add matched files to webpack's dependency tree.