我可以导入 babel-polyfill 模块而不是全部导入吗?
Posted
技术标签:
【中文标题】我可以导入 babel-polyfill 模块而不是全部导入吗?【英文标题】:Can I import babel-polyfill modules rather than all in? 【发布时间】:2016-07-20 17:26:52 【问题描述】:如何导入 babel-polyfill 的某些特定模块而不是全部导入?对我来说,它似乎太大了,无法全部导入,我只使用了它的一些功能。
我想要的如下:
import "babel-polyfill/symbol";
【问题讨论】:
【参考方案1】:在底层,babel-polyfill
使用了一个名为core-js 的项目(当然还有一些自定义)。它公开了一个CommonJS API,因此假设您正在转译为 CommonJS(使用 preset-es2015 时的默认行为),您可以简单地使用它:
// This pollutes the global namespace. May conflict with
// any real Symbol implementations in the future
import "core-js/es6/symbol";
// Namespace-safe Symbol import
import symbol from "core-js/es6/symbol";
使用某种捆绑器(Browserify、Webpack 等)对这种方法很重要,因为 core-js 由 很多 个较小的模块组成,可能会导致很多不必要的 HTTP 请求。
【讨论】:
【参考方案2】:如果不想导入整个 babel-polyfill 进行优化,可以直接导入 core-js。核心js可以
//import 'babel-polyfill';
//Selective imports in modular pattern
import 'core-js/fn/object/assign';
import 'core-js/fn/promise';
import 'core-js/fn/string/includes';
【讨论】:
以上是关于我可以导入 babel-polyfill 模块而不是全部导入吗?的主要内容,如果未能解决你的问题,请参考以下文章