webpack打包(3)

在开发环境配置:

        热模块替换:  一个模块发生变化,只会重新打包,而不是打包所有模块,极大提升打包速度   js文件和html默认不能使用hmr功能  

              在development属性中添加 hot:true    开启HMR功能   当修改了webpack配置 新的配置要想生效。必须重新启动webpack服务

        source-map:      一种提供源代码到渐渐后代映射技术(如果构建后代码出错了,通过映射可以追踪源代码错误) 错误代码的准确信息和源代码的错误位置  添加devtool属性

                inline-source-map 内联 错误代码的准确信息和源代码的错误位置

                hidden-source-map 外部 错误代码的错误原因 没有错误位置 不能追踪到源代码的错误只能提示到构建后代码的位置

                eval-source-map

                nosources-source-map 外部 错误代码准确信息,但是没有任何源代码信息 隐藏源代码

                cheap-source-map   错误代码准确信息和源代码错误位置  只能精确到行

                cheap-module-source-map 错误代码准确信息和源代码错误位置

            开发环境:    速度快   调试更友好

                速度快:  1.eval-chearp-souce-map   2.eval-source-map

                调试更友好: 1.souce-map    2.cheap-module-souce-map 3.cheap-souce-map

            生产环境:     源代码要不要隐藏

                nosources-source-map  全部隐藏

                hidden-source-map  只隐藏源代码,会提示构建后代码错误信息

        oneof:     一个文件只能被一个loader处理  当一个文件要被多个loader处理,那么一定要指定loader执行的先后顺序

              先执行eslint 再执行babel

        缓存:    cacheDirectory:true   让第二次打包构建速度更快

            hash:每次webpack构建时会产生一个唯一的hash值

                重新打包会导致所有缓存失效

            chunkhash:根据chunk生成的hash值 如果打包来源于同一个chunk,namehash值就一样

            contenthash:根据文件的内容生成hash值 不同文件hash值不一样

        tree shaking: 去除无用代码

              前提: 必须使用ES6模块化      开启production环境

              作用:减少代码体积

              在package.json中配置

                    “sideEffects”:fals   所有代码都可以进行tree  shaking  问题 :可能会把css    /@babel/polyfill 文件干掉

                     “sideEffects”:["*.css","*.less"]

                      

  

              

原文地址:https://www.cnblogs.com/ttaoai/p/13401976.html