NpmInstallWebpackPlugin
通过使用Webpack自动安装和保存依赖项来加速开发。
仅仅为了安装一个直到现在你才知道你需要的依赖项,而尝试使用你的构建脚本和服务器是很糟糕的。
相反,使用“需要”或“导入”,通常情况下会自动进行NPM安装,以便在工作时安装并保存缺少的依赖项!
安装
$ npm install --save-dev npm-install-webpack-plugin
用法
在 webpack.config.js 中:
plugins: [ new NpmInstallPlugin() ],
相当于:
plugins: [
  new NpmInstallPlugin({
    // 使用 --save 或者 --save-dev
    dev: false,
    // 安装缺少的 peerDependencies
    peerDependencies: true,
    // 减少控制台日志记录的数量
    quiet: false,
    // npm command used inside company, yarn is not supported yet
    npm: 'tnpm'
  });
],可以提供一个 Function 来动态设置 dev:
plugins: [
  new NpmInstallPlugin({
    dev: function(module, path) {
      return [
        "babel-preset-react-hmre",
        "webpack-dev-middleware",
        "webpack-hot-middleware",
      ].indexOf(module) !== -1;
    },
  }),
],Demo

Features
- [x] Works with both Webpack 
^v1.12.0and^2.1.0-beta.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)