我可以导入babel-polyfill模块而不是全部吗?

时间:2016-04-01 03:02:09

标签: javascript node.js import ecmascript-6 babeljs

如何导入babel-polyfill的某些特定模块而不是全部导入?对我来说,导入所有内容似乎太大了,我只使用它的一些功能。

我想要的是如下:

import "babel-polyfill/symbol";

2 个答案:

答案 0 :(得分:12)

在幕后,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请求。

答案 1 :(得分: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';