babel使用入门

前言:随着ES6普及的范围越来越广,学习并使用它是势在必行的,在正式学习ES6之前,必须对ES6的转换器要熟悉,知名度比较大的是Traceur和babel,今天我就来整理一下我在学习配置babel时的步骤以及遇到的坑,因为刚开始学习,所以写的并不全,之后遇到的坑以及心得,也都会在这里更新,如有不足,欢迎指出。

一、babel初见 之 配置步骤

1、准备

系统环境:win10
配置环境:node,npm(如何安装node以及npm请另寻文档)
项目文件夹:新建一个文件夹作为一个项目文件夹,打开cmd(快捷键:window+R),进入新建的这个文件夹的目录下,执行npm init(相关信息可一路按Enter键,设置为默认信息),最终生成了package.js文件。
babel使用入门_第1张图片

2、配置 .babelrc 文件

2.1创建.babelrc文件

因为在windows系统中,不允许直接右键建立没有文件名的文件,所以创建 .babelrc 文件有两个方式,第一个是直接通过编辑器创建,第二个是直接通过cmd命令行创建。
以下是cmd命令行创建方式:
在当前项目文件夹下,使用命令行:

type nul>.babelrc

这里写图片描述

2.2编写.babelrc文件内容

该文件用来配置转码规则和插件,基本格式如下:

{
  "presets": [], //设置转码规则
  "plugins": []  //设置插件
}

官方提供以下的规则集,可以根据需要安装:

# ES2015转码规则
npm install --save-dev babel-preset-es2015

# react转码规则
npm install --save-dev babel-preset-react

# ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个
npm install --save-dev babel-preset-stage-0
npm install --save-dev babel-preset-stage-1
npm install --save-dev babel-preset-stage-2
npm install --save-dev babel-preset-stage-3

然后,将这些规则加入 .babelrc

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

注意:Babel工具和模块的使用之前,都必须先写好 .babelrc


3、使用命令行转码 babel-cli

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

# 全局安装
npm install --global babel-cli  

# 在项目文件中安装
npm install --save-dev babel-cli

在全局安装babel-cli,这意味着,如果项目要运行,全局环境必须有Babel,也就是说项目产生了对环境的依赖, 并且这样做也无法支持不同项目使用不同版本的Babel。所以官网强烈建议我们使用后一种方式,在项目中安装。
在项目中安装之后,需要改写package.js:

{
  //...略去了其他的内容
  "devDependencies": {
    "babel-cli": "^6.0.0"  //这里的版本号为安装的时候的版本号,一般安装的时候就会自动写入
  },
  "scripts": {
    "build": "babel src -d lib" 
    //编译整个 src 目录并将其输出到 lib 目录。这里的src指的是需要转换的目录,lib指的是输出的内容的存放目录
  },
}

注意:如果创建的目录文件夹名称不为src和lib,请记得一定要替换,不然后续转换时会报错。

转码的时候,就执行下面的命令:

npm run build

babel-cli基本用法如下:

# 转码结果输出到标准输出
babel example.js

# 转码结果写入一个文件
# --out-file 或 -o 参数指定输出文件
babel example.js --out-file compiled.js
# 或者
babel example.js -o compiled.js

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

# -s 参数生成source map文件
babel src -d lib -s












参考文章:阮一峰前辈所写的babel入门教程http://www.ruanyifeng.com/blog/2016/01/babel.html

你可能感兴趣的:(es6)