babel转码器
简介
本文是基于node环境下讲解babel工具的使用方法
Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在老版本的浏览器执行。这意味着,你可以用 ES6 的方式编写程序,又不用担心现有环境是否支持。简而言之,它是一个可以将ES6转码成其它ES版本的工具
配置
创建相关配置文件
在sublime或者命令台新建文件.babelrc,如果在项目文件夹下新建该文件可能不会成功
接着,在该文件下添加代码用来设置转码规则,格式如下
1
2
3
4{
"presets": [],
"plugins": []
}在项目文件夹下安装babel
1
npm install --save-dev @babel/core
在这里,–save-dev和–save的区别如下
通过
--save
参数安装的包,是将依赖项保存到 package.json 文件中的 dependencies 选项中。
通过--save-dev
参数安装的包,是将依赖项保存到 package.json 文件中的 devDependencies 选项中。无论是
--save
或者--save-dev
安装的包,通过执行npm install
都会将对应的依赖包安装进来。但是,在开发阶段会有一些仅仅用来辅助开发的一些第三方包或是工具,然后最终上线运行(到了生产环境),
这些开发依赖项就不再需要了,就可以通过npm install --production
命令仅仅安装dependencies
中的
依赖项。接着,安装规则集,这里要安装ES6转码成ES5的相关规则
1
npm install --save-dev @babel/preset-env
然后,就可以在.babelrc文件里添加该规则
1
2
3
4
5
6{
"presets": [
"@babel/env",
],
"plugins": []
}使用
命令行转码
安装命令行转码工具
1
npm install --save-dev @babel/cli
用法( ES6 入门教程)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# 转码结果输出到标准输出
npx babel example.js
# 转码结果写入一个文件
# --out-file 或 -o 参数指定输出文件
npx babel example.js --out-file compiled.js
# 或者
npx babel example.js -o compiled.js
# 整个目录转码
# --out-dir 或 -d 参数指定输出目录
npx babel src --out-dir lib
# 或者
npx babel src -d lib
# -s 参数生成source map文件
npx babel src -d lib -s执行示例
源代码
1
2
3
4
5
6
7
8
9
10let a = [1, 2, 5, 4].find( n => n === 5)
let b = 1
if (true) {
let b = 3
}
console.log(a)
console.log(b)结果
@babel/register 模块
安装并引用该模块后,后面引用的所有包含ES6语法的模块都可以直接转码,而无需其他操作
安装模块
1
npm install --save-dev @babel/register
使用一个傀儡文件(main.js)来引入该模块并使用
1
2require('babel-register')
require('你的核心功能代码入口文件模块')node直接使用main.js文件即可
1
node main.js
总结
这个主要用作教育网站项目的后端技术node.js的es6转码,涉及到两个环境,一个开发环境和一个生产环境
因为node环境在有些ES6语法下无法执行,所以在这里就用到了babel转码器,在开发环境中全程ES6,到正式生产的时候就直接转成ES5语法。
补充
ES6中node引用模块
1 | import express from 'express' |
模块导出成员的几种方法
ES5
1 | exports.foo = 'bar' |
ES6
1 | // 写法一 |