.babelrc和babel.config.js
一、前言
今天看ES6的知识发现了项目中.babelrc和babel.config.js 都是Babel的配置文件,之前没怎么研究过两者的区别,今天来学习记录下
二、学习
babel 7.x 以上开始支持两种类型的配置文件, 分别是.babelrc 和 babel.config.js
babel.config.js是在babel第7版引入的,主要是为了解决babel6中的一些问题
.babelrc会在一些情况下,莫名地应用在node_modules中 .babelrc的配置不能应用在使用符号链接引用进来的文件 在node_modules中的.babelrc会被检测到,即使它们中的插件和预设通常没有安装,也可能在Babel编译文件的版本中无效
并且支持的文件扩展名:
Babel 可以使用 Node.js 原生支持的任何文件扩展名进行配置:您可以使用.json、 .js、.cjs和.mjs, forbabel.config.json和.babelrc.jsonfiles。
推荐使用场景:
babel.config.json 你正在使用一个monorepo(可以理解为在一个项目中会有多个子工程) 你希望编译node_modules以及symobllinked-project中的代码 .babelrc 你的配置仅适用于项目的单个部分 需要在子目录/文件中运行一些特定的转换,比如你可能不希望一些第三方库被转码 综合推荐使用babel.config.json,Babel itself is using it 总结: 推荐使用babel.config.js来作为整个项目的babel配置,
.babelrc 只会影响本项目中的代码 babel.config.js会影响整个项目中的代码,包含node_modules中的代码