一分钟入门 Babel(下一代 JavaScript 语法的编译器)

简介: 简单来说把 JavaScript 中 es2015/2016/2017/2046 的新语法转化为 es5,让低端运行环境(如浏览器和 node )能够认识并执行。严格来说,babel 也可以转化为更低的规范。但以目前情况来说,es5 规范已经足以覆盖绝大部分浏览器,因此常规来说转到 es5 是一个安全且流行的做法。

ES6转ES5(第一种)


初始化项目


npm init --y


安装依赖


npm install babel-cli -D


npm install babel-preset-es2015 -D


在项目中创建并编辑ES6文件


这里只是使用es6的语法举下例子,看下能否转译成es5语法。我们假设取名index.js,放在项目根目录的src文件夹里。


// src/index.js
let a = 1;
let fun = ()=>{
    console.log(a);
}


编辑package.json


我们需要自己在scripts字段里添加命令:


  • build-t :单独编译某个文件
  • build-d:把一个文件夹内的所有文件统一编译到另一个文件夹里(文件夹自动生成,不需要自己创建)
  • build-o:把一个文件夹内的指定文件编译到另外的文件夹里(文件夹需要自己创建,可以指定文件名)


{
  "name": "babel01",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build-t":"babel index.js --presets es2015",
    "build-d": "babel src -d lib --presets es2015",
    "build-o":"babel src/index.js -o dist/index.js --presets es2015"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-es2015": "^6.24.1"
  }
}


启动编译


npm run <这里是scripts字段的命令>


下面是编译后的es5文件。


"use strict";
var a = 1;
var fun = function fun() {
    console.log(a);
};


ES6转ES5(第二种)


其实跟第一种差不多。


初始化项目


npm init --y


安装依赖


npm install babel-cli -D


npm install babel-preset-es2015 -D


在项目中创建并编辑ES6文件


这里只是使用es6的语法举下例子,看下能否转译成es5语法。我们假设取名index.js,放在项目根目录的src文件夹里。


// src/index.js
let a = 1;
let fun = ()=>{
    console.log(a);
}


在项目中创建并编辑.babelrc文件


在根目录下创建.babelrc文件。


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


编辑package.json


我们需要自己在scripts字段里添加命令,命令内容与第一种方法的一样,这里只不过省了--presets es2015


{
  "name": "babel01",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
   "build":"babel src/index.js -o dist/index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-es2015": "^6.24.1"
  }
}


启动编译


npm run build


下面是编译后的es5文件。


"use strict";
var a = 1;
var fun = function fun() {
    console.log(a);
};


ES6+转ES5


这里 ES6+ 说的是ES6、ES7、ES8等。


初始化项目


npm init --y


安装依赖


npm install babel-cli -D


npm install babel-preset-env -D


在项目中创建并编辑ES6文件


这里只是使用es6的语法举下例子,看下能否转译成es5语法。我们假设取名index.js,放在项目根目录的src文件夹里。


// src/index.js
let a = 1;
let fun = ()=>{
    console.log(a);
}


在项目中创建并编辑.babelrc文件


在根目录下创建.babelrc文件。


{
    "presets": ["env"]
}


编辑package.json


命令内容不只是这一个,根据你需求写,其他命令可以看上面的ES6转ES5(第一种)


{
  "name": "babel01",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
   "build": "babel src -d dist"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-es2015": "^6.24.1"
  }
}


启动编译


npm run build


下面是编译后的es5文件。


"use strict";
var a = 1;
var fun = function fun() {
    console.log(a);
};


结语


本篇主要介绍了ES6转ES5的两种方法以及ES6+怎样转ES5。不过现在大部分使用ES6+怎样转ES5比较多,主要让大家体验下升级的感觉。如果觉得不错,麻烦关注下俺的公众号哦,会不定时发放前端电子书以及学习进阶视频。



相关文章
|
2月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
651 2
|
5天前
|
JavaScript 前端开发
【JavaScript】——JS基础入门常见操作(大量举例)
JS引入方式,JS基础语法,JS增删查改,JS函数,JS对象
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
148 1
|
1月前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
45 0
|
1月前
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
94 10
|
1月前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
2月前
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
2月前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
2月前
|
自然语言处理 JavaScript 前端开发
JavaScript高级——ES6基础入门
JavaScript高级——ES6基础入门
35 1
|
2月前
|
JavaScript 前端开发 大数据
在JavaScript中,Object.assign()方法或展开语法(...)来合并对象,Object.freeze()方法来冻结对象,防止对象被修改
在JavaScript中,Object.assign()方法或展开语法(...)来合并对象,Object.freeze()方法来冻结对象,防止对象被修改
46 0