一次,CD部署时WEB项目打包的TS最终编译为了ES3,而ES3下的JS代码最终导致了白屏。
事故直接原因
项目下的业务组件库没有执行TSC配置的target,而我司封装的构建打包工具在进行编译打包时,会优先使用找到的第一个TSconfig配置,于是主项目的ES5被忽视,而业务组件库又因为没有配置target,最终执行了缺省的TS target配置值-ES3。
要知道TS只是进行语法编译,并不进行polyfill。
解决
- 对于开发的组件库包等进行TS编译后发版,这样一方面可以提升项目打包速度,毕竟组件库包已经提前编译,另一方面是组件库不受主项目打包编译影响。
写在最后
mark