TypeError: webpack.LoaderOptionsPlugin is not a function

TypeError: webpack.LoaderOptionsPlugin is not a function

这是我的生产环境的 webpack 配置。

    var path = require('path');
    var webpack = require('webpack');
    var precss = require('precss');
    var autoprefixer = require('autoprefixer');
    var SaveAssetsJson = require('assets-webpack-plugin');

    ...

    console.log('Build optimized for production\n');

    config.output.filename = '[hash].plan.js';

    config.module.loaders.push({
      test: /\.js$/,
      loaders: ['babel'],
      exclude: /node_modules/,
      include: path.join(__dirname, 'app'),
    }); 

它通过 npm/package.json 消耗。在 package.json scripts 部分,这里是 build 目标:

"build": "NODE_ENV=production webpack -p --config webpack.config.js",

现在我想关闭某个环境的输出脚本丑化,主要是为了调试。

这是我新添加的 webpack 配置:

 switch (process.env.NODE_ENV) {
 case 'staging':
    console.log(`Build optimized for ${process.env.NODE_ENV}\n`);

    config.output.filename = '[hash].plan.js';

    config.module.loaders.push({
      test: /\.js$/,
      loaders: ['babel'],
      exclude: /node_modules/,
      include: path.join(__dirname, 'app'),
    });

    config.plugins = [
      new webpack.LoaderOptionsPlugin({
            minimize: true,
            debug: false
        }),
        new webpack.optimize.UglifyJsPlugin({
            beautify: false,
            comments: false
        })
    ]
    break;
...

里面的相关依赖package.json

 assets-webpack-plugin": "3.5.0",
"webpack": "1.13.3",

我从此处的 webpack 文档中复制插件配置 https://webpack.js.org/guides/production-build/

但是,当我 运行 npm run build:staging 时,我得到了这个错误:

> plan@1.0.0 build:staging /Users/antkong/project
> NODE_ENV=staging webpack --config webpack.config.js

Build optimized for staging

/Users/antkong/project/webpack.config.js:82
      new webpack.LoaderOptionsPlugin({
      ^

package.json中对应命令:

"build:staging": "NODE_ENV=staging webpack --config webpack.config.js",

我错过了什么?我应该安装任何开发依赖项吗?

LoaderOptionsPlugin 在 webpack 1 中不存在,它已被添加到 webpack 2 中以便于转换。

您可以升级到目前推荐的 webpack 2,或者如果您想要或必须继续使用 webpack 1,则需要从插件列表中删除 LoaderOptionsPlugin