← 返回首页
Nodejs基础教程(五)
发表时间:2020-04-20 01:26:34
讲解Babel

1.什么是Babel

Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行执行。 这意味着,你可以现在就用 ES6 编写程序,而不用担心现有环境是否支持。

2.Babel安装 Babel提供babel-cli工具,用于命令行转码。它的安装命令如下:

npm install --global babel-cli

#查看是否安装成功
babel --version

3.Babel的使用 在src/module目录下,创建模块。

export function getList() {
    console.log('获取数据列表')
}
export function save() {
    console.log('保存数据')
}

在src根目录下,创建test.js

//只取需要的方法即可,多个方法用逗号分隔
import { getList, save } from "./module/api.js"
getList()
save()

运行test.js,报错如下:

import { getList, save } from "./module/api.js"
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at Module._compile (internal/modules/cjs/loader.js:892:18)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
    at Module.load (internal/modules/cjs/loader.js:812:32)
    at Function.Module._load (internal/modules/cjs/loader.js:724:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
    at internal/main/run_main_module.js:17:11

因为ES6的模块化无法在Node.js中执行,需要用Babel编辑成ES5后再执行。

解决方法:

Babel的配置文件是.babelrc,存放在项目的根目录下,该文件用来设置转码规则和插件,基本格式如下。

{
    "presets": [],
    "plugins": []
}

1)在项目根目录下,创建.babelrc 文件。(注意:没有文件名只有扩展名)

{
  "presets": ["es2015"],
  "plugins": []
}

2)安装转码器

npm install --save-dev babel-preset-es2015

3)转码

# 整个目录转码
mkdir dist
# --out-dir 或 -d 参数指定输出目录
babel src --out-dir dist
# 或者
babel src -d dist

4)测试 在dist目录下,运行test.js. 运行结果:

获取数据列表
保存数据