内部用户用旧版浏览器打开,页面一片空白,控制台报语法错误。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,构建产物使用了旧浏览器不支持的语法,没有转译与兼容垫片。
「IE 白屏」这类改动最怕改一半,回滚脚本先准备好,再动生产。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
// babel 目标
{ "targets": { "ie": "11" } }
// 引入 polyfill
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
具体做法是,降级构建目标;引入必要垫片;确认第三方依赖也做过兼容。
最后用这个标准收尾,旧浏览器可以正常打开页面,核心功能基本可用,排版没有明显错位。