6.0.2 • Published 4 years ago

execa-webpack-plugin v6.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

execa-webpack-plugin

NPM version Build Status dependencies Status devDependencies Status

A better child_process for webpack.

Installation

npm i -D execa-webpack-plugin

Usage

webpack.config.js

const ExecaPlugin = require("execa-webpack-plugin");

module.exports = {
  plugins: [
    new ExecaPlugin({
      onBeforeRun: [
        {
          args: ["build"],
          cmd: "del",
          options: {
            cwd: process.cwd()
          }
        }
      ]
    })
  ]
};

Note: list of command options.

Options

NameTypeDefaultDescription
on(NameOfHook){Array}[]Array of commands to execute on the hook.
bail{Boolean}compiler.options.bailReport the first error as a hard error instead of tolerating it.
dev{Boolean}trueSwitch for development environments. This causes scripts to execute once. Useful for running HMR on webpack-dev-server or webpack watch mode.

on(NameOfHook)

List of hooks. The name of hook contains: on + hook name (first character in upper case). Examples: onBeforeRun, onRun, onWatchRun, onCompile and etc.

webpack.config.js

module.exports = {
  plugins: [
    [
      new ExecaPlugin({
        onBeforeRun: [
          {
            args: ["build"],
            cmd: "del"
          }
        ],
        onCompile: [
          {
            args: ["check"],
            cmd: "command"
          }
        ],
        // Support nested command
        onDone: [
          {
            args: [
              {
                args: ["arg"],
                cmd: "command-return-argument"
              },
              "other-argument",
              {
                args: ["arg"],
                cmd: "command-return-other-argument"
              }
            ],
            cmd: "command"
          }
        ]
      })
    ]
  ]
};

bail

Fail out on the first error instead of tolerating it. To enable it:

webpack.config.js

module.exports = {
  plugins: [
    [
      new ExecaPlugin({
        bail: true,
        onBeforeRun: [
          {
            args: ["build"],
            cmd: "del"
          }
        ]
      })
    ]
  ]
};

dev

If you want to run command(s) in watch mode every time you can set dev option to false.

webpack.config.js

module.exports = {
  plugins: [
    new ExecaPlugin({
      dev: false,
      onBeforeRun: [
        {
          args: ["build"],
          cmd: "del"
        }
      ]
    })
  ]
};

Examples

Set logger level

webpack.config.js

module.exports = {
  infrastructureLogging: {
    level: "warn"
  },
  plugins: [
    new ExecaPlugin({
      onBeforeRun: [
        {
          args: ["build"],
          cmd: "del"
        }
      ]
    })
  ]
};

Thanks

Changelog

License

6.0.2

4 years ago

6.0.1

4 years ago

6.0.0

4 years ago

5.0.0

5 years ago

4.0.1

5 years ago

4.0.0

5 years ago

3.0.0

5 years ago

2.1.2

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.1.0

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago