我的Webpack配置是:
{ devtool: 'source-map',
output:
{ path: '/Users/apple/Desktop/WorkSpace/GitHub/Webpack-Boilerplate/dist',
filename: '[name].bundle.js.[hash:8]',
sourceMapFilename: '[name].bundle.map',
publicPath: '/' },
plugins:
[ OccurrenceOrderPlugin { preferEntry: undefined },
DefinePlugin { definitions: [Object] },
ProvidePlugin { definitions: {} },
ExtractTextPlugin { filename: '[name].css', options: {}, id: 1 },
CommonsChunkPlugin {
chunkNames: 'vendors',
filenameTemplate: 'vendors.bundle.js',
minChunks: Infinity,
selectedChunks: undefined,
async: undefined,
minSize: undefined,
ident: '/Users/apple/Desktop/WorkSpace/GitHub/Webpack-Boilerplate/node_modules/webpack/lib/optimize/CommonsChunkPlugin.js0' },
HtmlWebpackPlugin { options: [Object] },
HtmlWebpackPlugin { options: [Object] },
HtmlWebpackPlugin { options: [Object] },
HtmlWebpackPlugin { options: [Object] },
UglifyJsPlugin { options: [Object] } ],
module: { loaders: [ [Object], [Object], [Object], [Object] ] },
postcss:
[ { [Function]
options: [Object],
info: [Function],
postcssPlugin: 'autoprefixer',
postcssVersion: '5.0.14' },
{ [Function: creator] postcss: [Object], process: [Function] } ],
resolve:
{ alias:
{ libs: '/Users/apple/Desktop/WorkSpace/GitHub/Webpack-Boilerplate/dev-config/libs',
nm: '/Users/apple/Desktop/WorkSpace/GitHub/Webpack-Boilerplate/dev-config/node_modules',
assets: '/Users/apple/Desktop/WorkSpace/GitHub/Webpack-Boilerplate/dev-config/assets' } },
externals: { jquery: 'jQuery', pageResponse: 'pageResponse' },
entry:
{ index: './src/index.js',
helloworld: './src/modules/helloworld/container/app.js',
counter: './src/modules/counter/container/app.js',
form: './src/modules/form/form.js' } }
奇怪的是,生成的vendors.bundle.js
块被缩小,但其他块不是。整个项目在这里:https://github.com/wxyyxc1992/Webpack-React-Redux-Boilerplate,只需使用npm run build
来构建项目并查看dist目录。
答案 0 :(得分:1)
一些块没有被缩小的原因可能是因为UglifyJS遇到错误并且中止了替换该块。这是一个插件错误,它不会导致你的编译失败(即设置compiler.options.bail
没有效果,你会得到一个未经证实的编译。)
UglifyJS使用它自己的AST,它只支持ES5,这里的问题可能是你没有转换你用到ES5的所有ES6 /下一个语法。我建议您使用uglify.verbose = true
配置UglifyJS,并确保在编译器运行时可以看到插件的警告和错误日志输出。