webpack其他文章
Webpack 从零到总结
参考资料
webpack 持久化缓存
- 在多页面应用中,我们需要将公共模块进行拆包,比如 header,footer,以及一些公共区域等等,这样页面在我们的网站中进行跳转的时候由于这些公共模块存在于缓存当中,就可以直接进行加载,而不是再通过网络请求。
- 分离业务代码和第三方的代码:之所以将业务代码和第三方代码分离出来,是因为业务代码更新频率高,而第三方代码更新迭代速度慢,所以我们将第三方代码(库,框架)进行抽离,这样可以充分利用浏览器的缓存来加载第三方库。
- 从 js 中抽离 css,使得 css 样式和 js 逻辑相对独立,这样我们在修改样式或者页面的逻辑的时候它们将互不影响到各自的缓存。
- 抽离异步加载的内容,比如路由切割,与首屏渲染无关的内容等等。
- 生成稳定的 hash 值,代码修改实现 hash 值变化最小,即代码修改只影响到其对应的文件 hash 值,而不要去影响到其它文件的 hash 值。
参考资料
深入理解 webpack 文件打包机制
参考资料
实战-动手搭一个自己的脚手架
参考资料
webpack 持久化缓存
- 在多页面应用中,我们需要将公共模块进行拆包,比如 header,footer,以及一些公共区域等等,这样页面在我们的网站中进行跳转的时候由于这些公共模块存在于缓存当中,就可以直接进行加载,而不是再通过网络请求。
- 分离业务代码和第三方的代码:之所以将业务代码和第三方代码分离出来,是因为业务代码更新频率高,而第三方代码更新迭代速度慢,所以我们将第三方代码(库,框架)进行抽离,这样可以充分利用浏览器的缓存来加载第三方库。
- 从 js 中抽离 css,使得 css 样式和 js 逻辑相对独立,这样我们在修改样式或者页面的逻辑的时候它们将互不影响到各自的缓存。
- 抽离异步加载的内容,比如路由切割,与首屏渲染无关的内容等等。
- 生成稳定的 hash 值,代码修改实现 hash 值变化最小,即代码修改只影响到其对应的文件 hash 值,而不要去影响到其它文件的 hash 值。
参考资料
SourceMap 定位错误
简单来说,Sourcemap 就是一个信息文件,它里面存储着代码转换前后的对应位置信息,也就是转换压缩后的代码所对应的转换前的源代码位置,是源代码和生产代码的映射, Sourcemap 解决了在打包过程中,代码经过压缩,去空格以及 babel 编译转化后,由于代码之间差异性过大,debug 困难的问题
SourceMap 总结
- 映射转换过后的代码和源代码之间的关系
- 代码中引入 // # sourceMappingURL=xxx.js.map 启用
- sourceMap 解决了源代码和运行代码不一致所产生的问题
- 不只是 js 文件有,css 文件也有
- 核心原理是 base64 vlq 编码
sentry 使用 webpack 上传 sourceMap 源文件定位错误到更详细具体的代码片段
参考资料
- sourceMap 知多少
- 万字长文:关于 sourcemap,这篇文章就够了
- 弄懂 SourceMap,前端开发提效 100%
- 何为 SourceMap?讲讲 SourceMap 食用姿势
- 如何让调试线上 JS 报错像调试本地源码一样优雅?
- sentry使用webpack上传sourceMap源文件定位错误到更详细具体的代码片段