@wpe-tkpd/run-script-webpack-plugin

Automatically run your script once Webpack's build completes.

Usage no npm install needed!

<script type="module">
  import wpeTkpdRunScriptWebpackPlugin from 'https://cdn.skypack.dev/@wpe-tkpd/run-script-webpack-plugin';
</script>

README

run-script-webpack-plugin

npm node deps licenses downloads size

Automatically run your script once Webpack's build completes.

NOTE: mostly copied from this repo, but strongly typed from scratch

Installation

$ npm i -D run-script-webpack-plugin

Usage

In webpack.config.js:

import { RunScriptWebpackPlugin } from "run-script-webpack-plugin";

export default {
  plugins: [
    ...
    // Only use this in DEVELOPMENT
    new RunScriptWebpackPlugin({
      name: 'server.js',
      nodeArgs: ['--inspect'], // allow debugging
      args: ['scriptArgument1', 'scriptArgument2'], // pass args to script
      signal: false | true | 'SIGUSR2', // signal to send for HMR (defaults to `false`, uses 'SIGUSR2' if `true`)
      keyboard: true | false, // Allow typing 'rs' to restart the server. default: only if NODE_ENV is 'development'
    }),
  ],
}

The name argument in RunScriptWebpackPluginOptions refers to the built asset, which is named by the output options of webpack (in the example the entry server becomes server.js. This way, the plugin knows which entry to start in case there are several.

If you don't pass a name, the plugin will tell you the available names.

You can use nodeArgs and args to pass arguments to node and your script, respectively. For example, you can use this to use the node debugger.

To use Hot Module Reloading with your server code, set Webpack to "hot" mode and include the webpack/hot/poll or webpack/hot/signal modules. Make sure they are part of your server bundle, e.g. if you are using node-externals put them in your whitelist. The latter module requires the signal option.

License

Refer to LICENSE file