2017-04-10 56 views
1

这是我的生产环境的webpack配置。TypeError:webpack.LoaderOptionsPlugin不是函数

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.jsonscripts部分,这里是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,我得到这个错误:

> [email protected] 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", 

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

回答

4

LoaderOptionsPlugin在webpack 1中不存在,它已被添加到webpack 2中以使转换更容易。

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