install-webpack-plugin
                                
                                 install-webpack-plugin copied to clipboard
                                
                                    install-webpack-plugin copied to clipboard
                            
                            
                            
                        Speed up development by automatically installing & saving dependencies with Webpack.
Install Webpack Plugin
Speed up development by automatically installing & saving dependencies with Webpack.
It is inefficient to Ctrl-C your build script & server just to install a dependency you didn't know you needed until now.
Instead, use require or import how you normally would and installation
will happen automatically to install & save missing dependencies while you work!
Installation
$ npm install --save-dev install-webpack-plugin
Usage
In your webpack.config.js:
plugins: [
  new InstallPlugin()
],
This is equivalent to:
plugins: [
  new InstallPlugin({
    dependencies: {
      peer: true,
    },
    packageManager: {
      type: this.getDefaultPackageManager(),
      options: {
        dev: false,
        quiet: false,
      },
    },
    prompt: true,
  });
],
Options
dependencies
Type: Object
Dependencies related options.
peer
Type: Boolean
Default: true
Install missing peer dependencies.
plugins: [
  new InstallPlugin({
    dependencies: {
      peer: true,
    }
  }),
],
packageManager
Type: 'npm' | 'yarn' | 'pnpm' | Object | Function
Package manager to use for installing dependencies.
plugins: [
  new InstallPlugin({
      packageManager: 'yarn'
    },
  }),
],
You can provide a Function to the packageManager to make it dynamic:
plugins: [
  new InstallPlugin({
    packageManager: function(module, path) {
      return [
        "babel-preset-react-hmre",
        "webpack-dev-middleware",
        "webpack-hot-middleware",
      ].indexOf(module) !== -1;
    },
  }),
],
type
Type: 'npm' | 'yarn' | 'pnpm'
Name of package manager to use for installing dependencies.
options
Type: Object
Package manager related options.
arguments
Type: Array
Provide custom arguments to use with package manager.
plugins: [
  new InstallPlugin({
      packageManager: {
        type: 'npm',
        options: {
          arguments: ['--ignore-scripts']
        }
      }
    },
  }),
],
dev
Type: Boolean
Default: false
Install as development dependencies.
plugins: [
  new InstallPlugin({
      packageManager: {
        type: 'npm',
        options: {
          dev: true,
        }
      }
    },
  }),
],
quiet
Type: Boolean
Default: false
Reduce the amount of console logging.
plugins: [
  new InstallPlugin({
      packageManager: {
        type: 'npm',
        options: {
          quiet: true,
        }
      }
    },
  }),
],
prompt
Type: Boolean
Default: true
Show a prompt to confirm installation.
plugins: [
  new InstallPlugin({
      prompt: true,
    },
  }),
],
Demo

Features
- [x] Works with webpack ^v5.0.0.
- [x] Auto-installs .babelrcplugins & presets.
- [x] Supports both ES5 & ES6 Modules.
(e.g. require,import)
- [x] Supports Namespaced packages.
(e.g. @cycle/dom)
- [x] Supports Dot-delimited packages.
(e.g. lodash.capitalize)
- [x] Supports CSS imports.
(e.g. @import "~bootstrap")
- [x] Supports webpack loaders.
(e.g. babel-loader,file-loader, etc.)
- [x] Supports inline webpack loaders.
(e.g. require("bundle?lazy!./App")
- [x] Auto-installs missing peerDependencies. (e.g.@cycle/corewill automatically installrx@*)
- [x] Supports webpack's resolve.alias&resolve.rootconfiguration. (e.g.require("react")can alias toreact-lite)
Contributing
Please take a moment to read our contributing guidelines if you haven't yet done so.
CONTRIBUTING