主要观点总结
本文介绍了如何通过编译时拦截来解决小程序项目中由于修改dayjs本地化配置导致的全局配置污染问题。文章首先讲述了问题的起源,是由于子包代码执行导致的日期错位问题。然后,文章详细解释了问题背景,包括dayjs的本地化配置和国际化,以及它们如何影响应用程序的展示。问题定位后,文章给出了解决方案,即通过将配置信息拆分和规范管控来避免污染全局配置。文章还探讨了如何避免类似问题再次发生,提出了通过编译时拦截来防止全局配置被误修改的可能性。最后,文章总结了解决方案,并提供了技术选型、代码实现和测试过程。
关键观点总结
关键观点1: 问题起源
一个线上问题的起源,导致日期错位。
关键观点2: 问题背景
项目中统一使用dayjs库处理时间和日期,以及dayjs的本地化配置和国际化。
关键观点3: 解决方案
通过拆分配置信息和规范管控,避免污染全局配置。
关键观点4: 技术选型
使用Webpack Loader和Babel插件实现编译时拦截。
关键观点5: 未来考虑
通过编译时拦截防止全局配置被误修改,以及提供通用的校验能力。
文章预览
前言 讲述了如何通过编译时拦截来解决小程序项目中由于修改 dayjs 本地化配置而导致的全局配置污染问题。今日前端早读课文章由 @苏梓铭分享,公号:Goodme 前端团队授权分享。 正文从这开始~~ 万恶之源 事情的起因,还要从年初的一个线上问题说起,我依稀记得那是一个悠闲的周五午后,产品在群里的一声惊呼,打破了这难得的片刻安宁。 “不好了小苏!快看看线上这是什么问题,怎么日期错位了” 我定睛一看,2 月 22 号,不是周四吗?怎么成周三了🤔时间倒流了?物理学不存在了?打开自己手机上的小程序看了看,还真有问题。 但是我转念一想,待办模块的代码已经半年多没有发布了,所以这一定不是我的问题,但是毕竟是自己负责的业务线,还是老老实实的打开项目开始排查。 问题背景 首先需要明确,在项目工程中,我们统一使用 d
………………………………