3

我有一个需要支持旧浏览器的 react 项目,我们正在使用诸如 array.find() 和 array.map() 之类的东西。我看到我们的项目已经在 node_modules 文件夹中有 core-js,所以使用它而不是在项目中添加另一个包会很好。

如果我这样导入:

import 'core-js/fn/array/find';

正如此响应中所建议的那样:http ://discuss.babeljs.io/t/why-does-array-prototype-find-not-work-with-babel-preset-es2015/46/4 是否会使用 polyfill替换可能已经存在的array.find 函数?如果它将替换现有功能,是否存在任何性能问题或其他原因,您不想使用这种方法?

4

1 回答 1

3

core-js总是替换您导入的函数。

这可能存在问题,我遇到的一个问题是尝试在加载的框架加载的代码中导入完整的库,这会通过替换已经替换的 Promiseszone.js而中断。zone.jszone.js

所以现在我core-js通过执行以下操作来填充单个函数:

if( ! Array.prototype.includes ) { require( "core-js/fn/array/includes" ); }
于 2018-03-20T20:34:58.153 回答