为什么要把 ES6 转成 ES5 代码?
简单答案就是:为了浏览器兼容,以及为了在 node.js 环境可以顺畅运行应用程序。
老的浏览器不支持 ES6 语法,因此需要转成兼容性更好的 ES5。
在 node.js 环境中,node 对 ES6 的支持一直被诟病,到了 13 版本之后,才出了模块模式(在 package.json 中增加一句:“type”: “module”),但有些库仍然不支持 ES6 语法。因此,如果你的 node.js 程序遇到不认识 ES6 语法的时候,请使用 Babel 转码一下也许就能解决问题。
如何使用 Babel
下面我们写出在命令行使用 Babel 的过程,让你清楚转译过程的全部内容。
1. 在项目中安装 Babel 的命令行工具
npm install -D babel-cli
2. 准备 ES6 代码
通常我们把源代码放在 src 目录下,如果你没有现成的 ES6 代码,那就在 src 目录下创建一个:
// src/example.js
class Hello {
static world() {
console.log('Hello, World!');
}
}
Hello.world();
3. 配置 Babel
Babel 是通过插件和预设值(preset)来转译代码(因此它可以转译的不只是 ES6)。为了转译 ES6 为 ES5,我们只需要配置 env 预设值就可以了,安装这个插件:
npm install -D babel-preset-env
我们还需要一个配置文件,在项目根目录下创建文件:.babelrc,内容如下:
// .babelrc
{
"presets": ["env"]
}
4. 创建 npm 命令
这一步不是必须的,因为前面已经配置好了,你可以直接执行命令:
babel src -d build
这样就会把 src 目录下的 Javascript 代码转译成 ES5,并存放在 build 目录下。
习惯上,我们将上门的命令放到 npm 命令中。在项目的 package.json 中,输入下面的内容:
"scripts": {
"build": "babel src -d build",
},
这样你就可以使用下面的命令来转译 ES6 代码:
npm run build