1、构建速度
    优化babel-loader

    1. use:['babel-loader?cacheDirectory'] // 开启缓存,未更新的不会重新编译
    2. // 明确构建范围
    3. include:path.resolve('./src')
    4. exclude:

    IgnorePlugin:避免引用无用模块

    import moment from 'moment'
    默认会引入所有语言js 代码过大
    
    new webpack.IgnorePlugin(/\.\/locale/,/moment/)
    
    文件中手动引入语言包
    

    noParse:
    避免重复打包,比如xxx.min.js
    IgnorePlugin vs noParse
    1、文件不引入,手动引入并打包
    2、noParse 引入 但是不打包

    happyPack 多进程打包

    {
        test:/.js$\,
      use: ['happypack/loader?id=babel'] 替换babel-loader
    }
    
    new HappyPack ({
        id:'babel',
      loaders:['babel-loader'] 
    })
    

    ParallelUglifyPlugin

    关于多进程
    项目较大 打包较慢 可以开多进程
    项目较小 没必要开启多进程
    

    自动刷新

    watch:true
    watchOptions:{
        ignored:/node_modules/,
       aggregateTimeout:300,
         poll:1000
    }
    

    热更新

    自动刷新 整个网页速度慢,状态会丢失
    热更新 不会
    hotmodulereplaceplugin
    new HotModuleReplacePlugin
    devServer配置hot:true
    

    Dllplugin