最近项目监控总是报白屏,查看异常信息,发现基本都是报了Uncaught TypeError: e.flatMap is not a function at* error之后,素质白屏触发。
排查之后发现 flatMap 和flat 是从babel7里面去除的,需要单独的去引入polyfill。
步骤1. npm install core-js,其中core-js 有版本区分,core-js@2和core-js@3引入polyfill的路径不一样 步骤2.引入对应需要的,分两种方式,单独引入某个需要的方法,或者全量引入 其中针对core-js 为V3版本的:
分别引入
/** 引入polyfill */
import 'core-js/features/array/flat-map';
import 'core-js/features/array/flat';
import 'core-js/features/array/flat-map';
import 'core-js/features/array/flat';
V2版本
/** 引入polyfill 分别引入 */
import 'core-js/fn/array/flat-map';
import 'core-js/fn/array/flat';
import 'core-js/fn/array/flat-map';
import 'core-js/fn/array/flat';
独立命名空间引入
import from from 'core-js-pure/features/array/from';
import flat from 'core-js-pure/features/array/flat';
import Set from 'core-js-pure/features/set';
import Promise from 'core-js-pure/features/promise';
from(new Set([1, 2, 3, 2, 1])); // => [1, 2, 3]
flat([1, [2, 3], [4, [5]]], 2); // => [1, 2, 3, 4, 5]
Promise.resolve(32).then(x => console.log(x)); // => 32