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
。
这是我的生产环境的 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
。