首页 文章

UglifyJS插件并没有缩小Webpack中的所有块

提问于
浏览
2

我的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目录 .

1 回答

  • 1

    一些块没有被缩小的原因可能是因为UglifyJS遇到错误并且中止了替换该块 . 这是一个插件错误,它不会导致你的编译失败(即设置 compiler.options.bail 没有任何效果,你会得到一个未经编辑的编译) .

    UglifyJS使用它自己的AST,它只支持ES5,这里的问题可能是你没有将你使用的所有ES6 /下一个语法转换为ES5 . 我建议您使用 uglify.verbose = true 配置UglifyJS,并确保在编译器运行时可以看到插件的警告和错误日志输出 .

相关问题