0 Star 0 Fork 1

嗷大张 / ecs-lite

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
babel.config.js 2.57 KB
一键复制 编辑 原始数据 按行查看 历史
aodazhang 提交于 2023-01-17 13:32 . chore(all): 更新babel配置
/**
* @description @babel/core配置文件
* @extends https://www.babeljs.cn/docs/presets
*/
/**
* 构建产物
*
* 一.不使用 runtime
* 不使用 runtime + 标准 targets + 配置 external:13kb
* 不使用 runtime + 标准 targets + 不配置 external:13kb
* 不使用 runtime + 严格 targets + 配置 external:61kb
* 不使用 runtime + 严格 targets + 不配置 external:61kb
* targets 影响 48kb
* external 影响 0kb
*
* 二.使用 runtime
* 使用 runtime + 标准 targets + 配置 external:13kb
* 使用 runtime + 标准 targets + 不配置 external:13kb
* 使用 runtime + 严格 targets + 配置 external:104kb
* 使用 runtime + 严格 targets + 不配置 external:104kb ✅
* targets 影响 91kb
* external 影响 0kb
*/
module.exports = {
// 1.babel预设
presets: [
[
'@babel/preset-env', // 使用 @babel/preset-env 编译预设
{
useBuiltIns: 'usage', // 采用 core-js 的 polyfill 方案,并且按需降级(另可用 entry、usage、false)
corejs: 3, // core-js 版本为 v3
debug: false // 可打印根据 targets 过滤出的的 plugins 和 presets
}
],
[
'@babel/preset-typescript', // 使用 @babel/preset-typescript 编译 ts
{
allExtensions: true // 支持所有文件扩展名,否则在 vue 文件中使用 ts 会报错
}
]
],
// 2.babel插件
plugins: [
[
'@babel/plugin-proposal-decorators', // 允许 babel 转换装饰器语法
{ legacy: true }
],
[
'@babel/plugin-transform-runtime', // 使用 @babel/plugin-transform-runtime 插件
{
/**
* https://github.com/babel/babel/issues/10008
* 问题:plugins 在 presets 之前运行,导致 @babel/plugin-transform-runtime 会提前 polyfill 所有代码,从而使得 @babel/preset-env 中的 targets 无效,不会按需 polyfill
* 当前版本:@babel/plugin-transform-runtime 现在共享 @babel/preset-env 提供的 targets,可忽略该问题
*/
/**
* @babel/plugin-transform-runtime 内部代码包含三种
* - core-js:核心 polyfill
* - regenerator:async/await 的 polyfill
* - helper:某些语法的 polyfill,例如 class
* 所以 @babel/plugin-transform-runtime 本质上只是一个 polyfill,ES6 转 ES5 还是需要 @babel/preset-env 执行
*/
corejs: 3 // 使用 @babel/runtime-corejs3 替代 core-js,解决全局 API 污染式注入
}
]
]
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/aodazhang/ecs-lite.git
git@gitee.com:aodazhang/ecs-lite.git
aodazhang
ecs-lite
ecs-lite
master

搜索帮助