zoukankan      html  css  js  c++  java
  • 为什么要用babel-polyfill

    1.为什么要用babel-polyfill

    Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如 Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。举个栗子,ES6在Array对象上新增了Array.from方法。Babel就不会转码这个方法。如果想让这个方法运行,必须使用babel-polyfill,为当前环境提供一个垫片。

    2.安装

    npm install babel-polyfill -S

    因为是一个 polyfill (它需要在你的源代码之前运行),我们需要让它成为一个 dependency,而不是一个 devDependency

    3.在 Node / Browserify / Webpack 中使用

    你需要在你的应用入口顶部通过 require 将 polyfill 引入进来。确保它在任何其他代码/依赖声明之前被调用!

    require("babel-polyfill");

    如果你在你的应用入口使用 ES6 的 import 语法,你需要在入口顶部通过 import 将 polyfill 引入,以确保它能够最先加载:

    import 'babel-polyfill';

    在 webpack.config.js 中,将 babel-polyfill 加到你的 entry 数组中:

    module.exports = {
      entry: ["babel-polyfill", "./app/js"]
    };

    4.在浏览器中使用

    可以在 babel-polyfill npm 发布版中的 dist/polyfill.js 文件中找到它。 它需要在你编译过的 Babel 代码之前被包括进去。你可以将它追加到你编译过的代码中,或者在这些代码之前通过 <script> 引入它。

    注意: 不要通过类似 browserify 等手段来 require 它,用 babel-polyfill

    5.备注

    Babel默认不转码的API非常多,详细清单可以查看 babel-plugin-transform-runtime模块的 definitions.js

    参考:https://www.babeljs.cn/docs/usage/polyfill/

  • 相关阅读:
    1856: [Scoi2010]字符串(Catalan数)
    11.6NOIP模拟赛
    bzoj1257[CQOI2007]余数之和(除法分块)
    11.5NOIP模拟赛
    bzoj1048(记忆化搜索)
    置顶公告+更新日志
    CF585F Digits of Number Pi
    [SHOI2007]善意的投票
    [HEOI2015]最短不公共子串
    树形背包复杂度+P3177 [HAOI2015]树上染色
  • 原文地址:https://www.cnblogs.com/codebook/p/10547040.html
Copyright © 2011-2022 走看看