我有一个需要支持旧浏览器的反应项目,我们正在使用像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函数?如果它将取代现有功能,是否存在任何性能问题或其他原因导致您不想使用此方法?
答案 0 :(得分:2)
core-js
总是替换您导入的函数。
可能存在问题,我遇到的是试图导入由加载zone.js
的框架加载的代码中的完整库,该框架通过替换zone.js
替换Promises zone.js
{1}}已经取代。
所以现在我使用core-js
通过这样的方式来填充各个函数:
if( ! Array.prototype.includes ) { require( "core-js/fn/array/includes" ); }