ES6转码工具babel使用实操

354 阅读1分钟

使用babel本地项目转码实操

  1. 使用node init初始化项目,相关配置可以依据自己需要自行编辑。初始化完成中项目根目录中会出现package.json文件,该文件为node相关配置信息,如下:
{
  "name": "test2",         //名称
  "version": "1.0.0",      //版本号
  "description": "",       //描述
  "main": "index.js",      //项目入口文件
  "scripts": {      //配置快捷命令
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {   //git仓库
    "type": "git",
    "url": "git+https://github.com/fighxp/test.git"
  },
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/fighxp/test/issues"
  },
  "homepage": "https://github.com/fighxp/test#readme",   //github对应仓库中readme
  "devDependencies": {    //项目依赖库及对应版本号
    "babel-cli": "^6.26.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-latest": "^6.24.1"
  }
}

2.安装配置转码规则集

$ npm install babel-preset-env --save-dev

3.项目中新建配置文件,重命名为.babelrc,加入配置信息

{
    "presets":[
        "env"
    ],
    "pligins":[]
}

4.安装babel-cli命令行转码工具

$ cnpm install babel-cli --save-dev  

使用下面命令查看babel-cli是否安装成功:

$ babel-cli --version

报以下错误,解决方法:

  1. 配置系统环境变量 path
  2. 更改本地项目安装babel-cli为全局安装babel-cli
  3. 使用管理员身份运行vscode
babel : 无法将“babel”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ babel --version
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (babel:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

5.项目中新建文件夹 src 存放es6开发版js文件, dist存放转码后es5文件

  • 转码单个文件:使用下方命令,将src中es6文件转码为es5文件并保存至dist/index.js中
$ babel src/index.js -o dist/index.js
  • 转码整个文件夹:
$ babel src -d dist 
  • 实时监控,保存后自动转码
$ babel src -w -d dist 

ES6使用babel转码器——理论知识

官方提供规则集,可根据需要进行安装。

  • 最新转码规则
$ cnpm install --save-dev babel-preset-latest
  • react转码规则
$ cnpm install --save-dev babel-preset-latest
  • 不同阶段语法提案的转码规则(共有4个阶段),选装一个
$ cnpm install --save-dev babel-preset-stage-0
$ cnpm install --save-dev babel-preset-stage-1
$ cnpm install --save-dev babel-preset-stage-2
$ cnpm install --save-dev babel-preset-stage-3

bable配置文件.babelrc

.babelrc配置文件一般在项目根目录。 设置转码规则和插件

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

新建配置文件.babelrc,放至项目根目录:

{
    "presets":[
        "latest",
        "react",
        "stage-2"
    ],
    "pligins":[]
}

命令行转码babel-cli

全局安装

npm install --global babel-cli

用法 转码结果标准输出

$ babel example.js

转码结果写入指定文件

$ babel example.js --out-file complie.js

整个目录转码 --out-dir 或 -d参数指定输出目录

$ babel src --out-dir lib

或者

$ babel src -d lib

-s参数生产source map文件

$ babel src -d lib -s

全局安装存在弊端:

  1. 项目对环境产生依赖,必须全局环境中安装有Babel。
  2. 无法支持不同项目使用不同版本的babel

babel-cli安装在项目之中

$ npm install --save-dev babel-cli

然后,改写package.json文件

{
    //
    "devDependencies":{
        "babel-cli":"^6.0.0"
    },
    "scripts":{
        "build":"babel src -d lib"
    }
}

转码时候执行

$ npm run build