一、背景
- ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等。
- 目前,各大浏览器对 ES6 的支持可以查看 kangax.github.io/compat-table/es6/。
- Node.js 是 JavaScript 的服务器运行环境(runtime)。它对 ES6 的支持度更高。
- 目前各大浏览器基本上都支持 ES6 的新特性,其中 Chrome 和 Firefox 浏览器对 ES6 新特性最友好,IE7~11 基本不支持 ES6。
二、ES6 转码器
(1) Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在老版本的浏览器执行。
- 下面的命令在项目目录中,安装 Babel:
$ npm install --save-dev @babel/core
- 配置文件.babelrc
Babel 的配置文件是.babelrc,存放在项目的根目录下。
该文件用来设置转码规则和插件。
- Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API.
比如Iterator、Generator、Set、Map、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码
(2)其他一些:jsx,traceur,es6-shim
三、webpack
webpack 是一个现代 JavaScript 应用程序的静态模块打包器 (module bundler) 。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图 (dependency graph) ,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle