-
Notifications
You must be signed in to change notification settings - Fork 0
/
babel.config.js
29 lines (28 loc) · 1.25 KB
/
babel.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const isDEV = process.env.NODE_ENV === 'development' // 是否是开发模式
module.exports = {
// 执行顺序由右往左,所以先处理ts,再处理jsx,最后再试一下babel转换为低版本语法
presets: [
[
'@babel/preset-env',
{
// 设置兼容目标浏览器版本,这里可以不写,babel-loader会自动寻找上面配置好的文件.browserslistrc
// "targets": {
// "chrome": 35,
// "ie": 9
// },
targets: { browsers: ['> 1%', 'last 2 versions', 'not ie <= 8'] },
useBuiltIns: 'usage', // 根据配置的浏览器兼容,以及代码中使用到的api进行引入polyfill按需添加
corejs: 3, // 配置使用core-js使用的版本
loose: true
}
],
// 如果您使用的是 Babel 和 React 17,您可能需要将 "runtime": "automatic" 添加到配置中。
// 否则可能会出现错误:Uncaught ReferenceError: React is not defined
['@babel/preset-react', { runtime: 'automatic' }],
'@babel/preset-typescript'
],
plugins: [
['@babel/plugin-proposal-decorators', { legacy: true }],
isDEV && require.resolve('react-refresh/babel') // 如果是开发模式,就启动react热更新插件
].filter(Boolean) // 过滤空值
}