想了解Webpack,看这篇就够了( 二 )


2. 配置loader
js兼容性处理核心代码如图3-3所示

想了解Webpack,看这篇就够了

文章插图
 
图3-3 js兼容性处理核心代码
3.5.3 js压缩mode设置为production生产环境时会自动压缩js代码 。
4. webpack性能优化可以从开发环境和生产环境分别对webpack进行性能优化 。其中开发环境主要考虑从打包构建速度和代码调试两个方面进行优化,生产环境主要考虑从打包构建速度和代码运行性能这两个方面进行优化 。下面简单介绍下开发环境上通过HMR提升构建速度 。
4.1 HMRHMR(热模块替换),作用是一个模块发生变化后,只会更新打包这一个模块而不是所有模块,通过在devServer中设置hot:true属性启动HMR功能 。
其中对于样式文件,可以使用HMR功能,因为style-loader内部实现了;
对于js文件,默认不能使用HMR功能,解决方法:修改入口文件js代码,添加支持HMR功能的代码,另外HMR只能处理非入口js文件的其他文件,对入口文件并不能生效,因为一旦入口文件更新,入口文件引入的其他文件一定会被重新加载;
对于html文件,默认不能使用HMR功能,同时会导致html文件不能热更新,解决方法:修改entry入口文件,将html文件引入,只能解决html文件不能热更新的问题 。
js文件支持HMR功能的核心代码如图4-1所示 。
想了解Webpack,看这篇就够了

文章插图
 
图4-1 js文件支持HMR功能核心代码
4.2 HMR效果在入口index.js文件中引入print.js文件,运行npx webpack-devserver后,页面如图4-2所示 。
想了解Webpack,看这篇就够了

文章插图
 
4-2 初始页面
修改print.js文件后,只会重新加载print.js文件,而不会重新加载index.js文件,HMR效果如图4-3所示 。
想了解Webpack,看这篇就够了

文章插图
4-3 HMR效果图
来源:华为云社区




推荐阅读