使用Babel 7.x 时如何编译 node_modules

6,740 阅读1分钟

1. 背景

同事在发布一个 npm 包的时候没有将 ES6 语法转成 ES5 语法,导致项目在企微内部浏览器中产生兼容性问题。但短时间内同事不准备发一版来适配这个问题。

2. 解决方案

在项目中单独转译一下该 npm 包,按照一般对 webpack 配置的了解,只需要在使用 babel 的时候将 node_modules/xxx 加到 includes 路径就行了。

{ 
    test: /\.(js|jsx)/,  
    include: [path.resolve('src'), path.resolve('node_modules/xxx')], 
}

然鹅,好像没起作用的样子。

Image.png 最后发现问题出在 .babelrc 配置文件上,若使用 .babelrc 则 node_modules 会被默认排除在外,在 bable7.x 中可以通过修改文件名来解决 .babelrc => babel.config.json

参考

  1. 官网地址

1.png 2. github issue