Babel 包含一个可自定义的 regenerator runtime 和 core-js 的 polyfill。
它会仿效一个完整的 ES2015+ 环境,并意图运行于一个应用中而不是一个库/工具。这个 polyfill 会在使用 babel-node 时自动加载。
这意味着你可以使用新的内置对象比如 Promise 或者 WeakMap, 静态方法比如 Array.from 或者 Object.assign, 实例方法比如 Array.prototype.includes 和生成器函数(提供给你使用 regenerator 插件)。为了达到这一点, polyfill 添加到了全局范围,就像原生类型比如 String 一样。
安装代码语言:javascript代码运行次数:0复制npm install --save babel-polyfill因为这是一个 polyfill (它需要在你的源代码之前运行),我们需要让它成为一个 dependency,而不是一个 devDependency 。
在 Node / Browserify / Webpack 中使用你需要在你的应用入口顶部通过 require 将 polyfill 引入进来。
确保它在任何其他代码/依赖声明之前被调用!
代码语言:javascript代码运行次数:0复制require("babel-polyfill");如果你在你的应用入口使用 ES6 的 import 语法,你需要在入口顶部通过 import 将 polyfill 引入,以确保它能够最先加载:
代码语言:javascript代码运行次数:0复制import "babel-polyfill";在 webpack.config.js 中,将 babel-polyfill 加到你的 entry 数组中:
代码语言:javascript代码运行次数:0复制module.exports = {
entry: ["babel-polyfill", "./app/js"]
};在浏览器中使用可以在 babel-polyfill npm 发布版中的 dist/polyfill.js 文件中找到它。 它需要在你编译过的 Babel 代码之前被包括进去。你可以将它追加到你编译过的代码中,或者在这些代码之前通过