webpack 生产环境下插件用途

ExtractTextPlugin:独立css

 new ExtractTextPlugin({
      filename:'[name].[contenthash].css',
      allChunks: true,
    }),

UglifyJsPlugin:压缩js

 new webpack.optimize.UglifyJsPlugin({
      sourceMap: true,
      output: {
        comments: false,  // remove all comments
      },
      compress: {
        warnings: true,
      }
}),

CopyWebpackPlugin:拷贝静态资源到编译目录

new CopyWebpackPlugin([
      {from: 'src/www/css', to: 'css'},
      {from: 'src/www/images', to: 'images'},
      // {from: 'src/www/model', to: 'app/model'},
    ]),

DefinePlugin:相当于定义全局变量

 new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('production')
    }),

ChunkManifestPlugin:生成Manifest.json文件,(这个插件本身会有一点问题呢)

 new ChunkManifestPlugin({
      inlineManifest: true 
    }),

inlineManifest为true很重要,还需要在index.html加如下代码:(最终生成的文件里对路径的引用会是window.webpackManifest,而不是再把数据在文件加一遍,还是可以缩小一点点文件大小的)

<%= htmlWebpackPlugin.files.webpackManifest %>

CommonsChunkPlugin:提取公共文件

    new webpack.optimize.CommonsChunkPlugin({
        names: ['app','vendor'], //entry
        minChunks:Infinity
    }),
     new webpack.optimize.CommonsChunkPlugin({
      names: 'runtime' //单独的一个文件,处理逻辑
    }),

NamedModulesPlugin:生成的文件里面的modules路径会类似 ../react/..
HashedModuleIdsPlugin:生成的文件里面的modules路径会是哈希值。会缩小文件的

new webpack.NamedModulesPlugin(),
new webpack.HashedModuleIdsPlugin({
    hashDigestLength: 8
}),        

LodashModuleReplacementPlugin:Loadsh库,可以自行百度

new LodashModuleReplacementPlugin({
  path: true,
  flattening: true
})

HtmlWebpackPlugin和CleanWebpackPlugin我就不提了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值