webpack性能优化有许多方法,以下列举一些我知道的,了解到的

1.oneOf

  常规的loader解析是会遍历module下的rules的所有选项的,简单理解就是一个for循环遍历,写过代码的我们都知道,在循环中,如果找到了自己想要的,那么

就可以用一个break跳出循环。这里的oneOf就是类似于break.下面贴上一小段代码:

module:{
            rules:[
                {
                oneOf:[

                    {
                        test:/\.js$/,
                        use:[
                            'happypack/loader?id=babel',
                            {
                                loader:"thread-loader",
                                options:{
                                    workers:3
                                }
                            }
                        ],
                        include:['/src/'],
                        exclude:"/node_modules/"

                },
                {
                    test:/\.css$/,
                    use:[
                        minicss.loader,
                        'css-loader',
                        {
                            loader:"thread-loader",
                            options:{
                                workers:3
                            }
                        }
                    ]
                },
                {
                    test:/\.less$/,
                    use:[
                        minicss.loader,
                        'css-loader',
                        'less-loader'
                    ]
                }
            ]
         
        }
    ]
    },

2.多线程打包

使用thread-loader,默认的打包是单线程的,可以通过这个插件设置线程数,加快打包的速度,比如下面启动了三个线程去打包

{
                        test:/\.js$/,
                        use:[
                            'happypack/loader?id=babel',
                            {
                                loader:"thread-loader",
                                options:{
                                    workers:3
                                }
                            }
                        ],
                        include:['/src/'],
                        exclude:"/node_modules/"

                },

3.source-map

  什么是source-map?source-map是一种源码以及打包后的代码的一个映射技术,方便于开发环境下的调试

  通过在webpack.config.js中设置dev-tools可以启用不同的一个调试模式,常用的有source-map,inline-source-map,cheap-module-source-map

  下面通过代码体会一下,首先得写一段错误的代码(hhh)

       3.1.  devtool:'inline-source-map'

 

 如截图所以,在console里面会显示出代码错了的行数以及打包后的行数

  3.2.  devtool:'source-map'

 

 该模式下跟inline-source-map的区别是会生成打包一个map文件

  3.3  devtool:'cheap-module-source-map'

 

该模式下看不到打包好的代码中的行数