多package下babel编译问题
项目背景
之前一直使用typescript
+ babel
编译项目
typescript
作用只是单纯用来做强类型检查, babel
则真正用来编译代码.
{
"target": "exnext"
}
偶然一次机会, 发现编译后的部分代码并没有编译object-rest-spread
而这部分代码全都在一个子目录下
由于我的项目使用了git-submodules
来管理组件, 所以该组件目录下带有package.json
文件
恰好这部分文件只经过了typescript
的编译, 而没有经过babel
其他Page
都正确的被babel
编译, 不存在问题.
于是想起是否子目录下的文件不被babel
编译, 看了下官方文档, 的确有相关的描述.
问题原因
当项目目录中含有多个package.json
时候, 原有的.babelrc
已经不再适用
.
这时候经过webpack
编译 只有src
下的文件会被正确编译, sub
下的文件不会被babel
编译
此时webpack
会报错
原因就是这部分文件没有被babel
正确编译
上述问题解决办法
官方有详细说明
将.babelrc
改成babel.config.js
, 此时sub
下的文件可以被正确编译
当然, 使用babel.config.js
还可以灵活的配置各个package
中babel
编译规则. 具体的还是请看官方文档