初学babel

avatar
前端

babel是什么

Babel 通过语法转换器支持最新版本的 JavaScript 。 这些插件允许你立刻使用新语法,无需等待浏览器支持。 查看 env preset 开始使用 Babel

企业级开发方案

自动化开发任务的管理者 babel 让我们的js可以使用最新的技术编写, 如es8 acync:async 函数的含义和用法 await: 对async/await的深入理解

babel的安装

  • npm init -y初始化一个项目 新建一个.babelrc文件内容为
    { "presets": ["env"] }presets字段设定转码规则
  • 使用Babel提供babel-cli工具,用于命令行转码 安装命令是
    `yarn global add babel-cli
  • 转码结果写入一个文件 babel es6.js或者babel es6.js -o es5.js
上面代码是在全局环境下,进行Babel转码。这意味着,如果项目要运行,全局环境必须有Babel,也就是说项目产生了对环境的依赖。另一方面,这样做也无法支持不同项目使用不同版本的Babel

______________________________

项目中安装babel

  • yarn add babel-core
  • yarn add babel -core -D
  • yarn add babel -preset-env-D

本地安装的开发依赖 devDependencies安装完成后package.json会新增一段代码
"devDependencies": { "babel": "^6.23.0" }`表示本地安装成功

一个真实的目录结构


一段使用babel编译后的js代码

  • es5对变量的声明是使用var
    es6对变量的声明新增了let 和 const关键字,es6可以使用箭头函数
    const num = 9; let isMarried = false; let yourTurn = ['好工作', '找老板谈', '驴妈妈网'].map((task, index) => { return{index}-{task}}); console.log(yourTurn);
  • 在终端用babel.es6.js转译后 'use strict'; var num = 9; var isMarried = false; var yourTurn = ['好工作', '找老板谈', '驴妈妈网'].map(function (task, index) { return index + '-' + task; }); console.log(yourTurn)
  • 这将把编译后的结果直接输出至终端。使用 --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

初识babel 以后让我们的js可以使用最新的技术编写吧
一起学习Babel 用户手册;
如果你也是新手来和我一起学习一口(很长的)气了解 babel;