我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Node.js基础模块babel使用详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Node.js基础模块babel使用详解

前言:

由于ES6到ES7增加了很多新的语法,新特性的出现使得大家都希望通过新语法来提升自身的开发效率,但在之前的最新的node可能也没有百分之百的支持ES2017的新特性,而且开发者在开发环境和生产环境中的版本一般是不同的,所以新特性的代码可能不能完美的运行在线上环境中,为了解决难题,babel提供一系列的api来将新特性的语法转化成低版本环境中能够运行的代码

安装配置

babel是由一系列的组件构成,所以我们在开发过程中,要从自行配置组件来开始使用babel的功能

我们先来安装一下babel-cli,通过npm运行即可将babel-cli下载到我们的node_modules中

`npm install babel-cli`

image.png

使用babel

我们再项目中增加一个名为.babelrc的配置文件,用于指定babel以哪一个版本的ES来进行转换,新增文件并作以下配置,这里记得要用双引号,单引号的话会报错

{
    "presets":[
        "es2016",
        "stage-0"
    ]
}

es表示了转化的版本,stage则代表了提案的特性,这里我们可以来简单了解一下

  • stage0: strawman,任何TC39的成员都可以提出的草案,随时被废弃。
  • Stage 1: proposal,这是一个比较正式的提议,表示要进一步讨论。
  • Stage 2: draft,在上一步的基础上进行尽可能详细的讨论,到了这个阶段后,只允许增量修改。
  • Stage 3: candidate,对提案的讨论基本完成,等待用户的反馈,只有发生重大问题时才会修改。
  • Stage 4: finished,经过了充分的测试,已经准备好写进新标准了。

实际例子

我们使用额外的组件来帮组我们完成转化

npm install -save babel-core

安装完转化工具后进行编写代码

//babel.js
let [aa,bb,cc] = [11,22,33]
let a = [...'666']
console.log(a);
var babel = require('babel-core');
var fs = require('fs');
babel.transformFile("./babel/babel.js",function(err,res){
    console.log(res.code);
})

运行这个代码的时候会发生错误,那是因为我们在第一步编写babel配置的时候没有下载相应的模块

‘Couldn't find preset "stage-0" relative to directory’

我们只要将相应的模块下载下来即可:

 npm install babel-preset-stage-0

在package.json说明模块已经存在了

 

image.png

我们执行看一下效果,已经是按照语法做转化出来了

image.png

类的转化

我们都知道class是JS的一个语法糖,那么到底是如何实现的,其实可以通过babel来进行转化

image.png

出现的代码是比较长并且很复杂的,这样即使是简单的一个class转化成ES5的写法后会担心是否存在某些问题

babel-polyfill

默认情况下babel不会转换一些新的API比如Promise等,可以使用第三方插件来进行解决

npm install -s babel-polyfill

我们这里去通过自己写一个promise的例子然后转化一下看看

import 'babel-polyfill'
function timeout(ms){
    return new Promise((res,rej)=>{
        setTimeout(res,ms,'done')
    })
}
timeout(1000).then((val)=>{
    console.log(val);
})

转化结果如下:

image.png

到此这篇关于Node.js基础模块babel使用详解的文章就介绍到这了,更多相关Node.js babel内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Node.js基础模块babel使用详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python基础之hashlib模块详解

一、hashlib简介 1.什么叫hash: hash是一种算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
2022-06-02

Python基础之模块怎么使用

这篇文章主要介绍“Python基础之模块怎么使用”,在日常操作中,相信很多人在Python基础之模块怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python基础之模块怎么使用”的疑惑有所帮助!接下来
2023-07-06

Python基础之如何使用multiprocessing模块

一、multiprocessing模块 multiprocessing包是Python中的多进程管理包。与threading.Thread类似,它可以使用multiprocessing.Proces 对象来创建一个进程。 该进程可以运行在P
2022-06-02

Node.js学习之地址解析模块URL的使用详解

前言 本文主要给大家介绍了关于Node.js地址解析模块URL使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 url结构化/模块化/路径解析结构化:url.parse(urlString[, parseQu
2022-06-04

深入理解Node.js中通用基础设计模式

谈到设计模式,你可能会想到 singletons, observers(观察者) 或 factories(工厂方法)。本文不并专门探讨他们。只是探讨Node.JS一些基础模式的实现,像依赖注入或中间件。 什么是设计模式? 设计模式是用来解决
2022-06-04

python中os模块和sys模块的使用详解

本文主要介绍了python中os模块和sys模块的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-21

GoLangbytes.Buffer基础使用方法详解

Go标准库中的bytes.Buffer(下文用Buffer表示)类似于一个FIFO的队列,它是一个流式字节缓冲区,我们可以持续向Buffer尾部写入数据,从Buffer头部读取数据。当Buffer内部空间不足以满足写入数据的大小时,会自动扩容
2023-03-19

编程热搜

目录