【问题标题】:Can I import babel-polyfill modules rather than all in?我可以导入 babel-polyfill 模块而不是全部导入吗?
【发布时间】:2016-07-20 17:26:52
【问题描述】:

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

我想要的如下:

import "babel-polyfill/symbol";

【问题讨论】:

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


    【解决方案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';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-05
        • 2017-04-18
        • 2016-07-30
        • 1970-01-01
        • 1970-01-01
        • 2016-12-01
        • 2018-07-26
        • 2015-10-26
        相关资源
        最近更新 更多