【发布时间】:2016-07-20 17:26:52
【问题描述】:
如何导入 babel-polyfill 的某些特定模块而不是全部导入?对我来说,它似乎太大了,无法全部导入,我只使用了它的一些功能。
我想要的如下:
import "babel-polyfill/symbol";
【问题讨论】:
标签: javascript node.js import ecmascript-6 babeljs
如何导入 babel-polyfill 的某些特定模块而不是全部导入?对我来说,它似乎太大了,无法全部导入,我只使用了它的一些功能。
我想要的如下:
import "babel-polyfill/symbol";
【问题讨论】:
标签: javascript node.js import ecmascript-6 babeljs
在底层,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 请求。
【讨论】:
如果不想导入整个 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';
【讨论】: