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

Jso*_*son 10 javascript import node.js ecmascript-6 babeljs

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

我想要的是如下:

import "babel-polyfill/symbol";
Run Code Online (Sandbox Code Playgroud)

Cod*_*gue 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";
Run Code Online (Sandbox Code Playgroud)

使用这种方法很重要的是你使用某种捆绑器(Browserify,Webpack等),因为core-js由许多较小的模块组成,可能会导致大量不必要的HTTP请求.