29 lines
1.3 KiB
JavaScript
29 lines
1.3 KiB
JavaScript
|
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), // 过滤空值
|
|||
|
};
|