babel的一些包的相关总结

参考:https://babeljs.io
https://www.babeljs.cn

babel-***、@babel/***的包总是占一堆,但是又不太清楚是干嘛的,所以特地看了下文档,整理和摘抄如下:

@babel/core

核心功能,babel从版本7开始用@开头的scope包,老版本是babel-core,其他的包都是一样的规律

@babel/plugin-***

很多,不列举了,单独配置plugin看上去也不是什么好方法,有需要可以查阅
https://babeljs.io/docs/en/plugins

@babel/preset-***

  • preset是预先确定的一些plugin的集合,babel官方的preset目前有: @babel/preset-env、@babel/preset-flow、@babel/preset-react、@babel/preset-typescript,当然还有非官方的
  • 没有特殊要求就用babel-preset-env吧,带年份和带stage的都不建议用了
  • 可以自定义preset,不过一般使用应该不太需要

@babel/polyfill

不是必需的。如果是在写lib,不要使用@babel/polyfill,因为其中的一些实现会污染全局
兼容新特性,不会将代码编译成低版本,如果要使用,要用-S而不是-D。据说是往全局对象和内置对象的prototype上添加方法来实现的
在webpack中使用,可以这样写,每个官方的preset都有自己的选项说明,比如
https://babeljs.io/docs/en/babel-preset-react

{
  "presets": [
  	["@babel/preset-env", { useBuiltIns: "usage" }],
  ]
}

@babel/runtime

不是必需的。babel用到一些helpers,这些helpers都指向(引用)@babel/runtime,这些代码是可复用的,用@babel/plugin-transform-runtime可以达到这一目的
据说会把高版本代码转译成低版本,但是不会往全局对象和内置对象的prototype上添加方法,所以如果遇到实例方法(是新特性的情况)就会出问题

其他

babel-loader,这个其实是webpack里用的东西
babel-eslint、babel-jest,很多这些格式的都是相关工具(eslint、jest)为了支持babel写的包

https://blog.csdn.net/huangpb123/article/details/82229071
这一篇写的比我详细,我对polyfil和runtime应该在什么时候用还是不太清楚,可以看看,还有这个
https://www.jianshu.com/p/a16a34eb597e

看了一天文档只写出了这么点东西,不过前端的环境搭建真是越来越复杂了QAQ

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值