代码拉取完成,页面将自动刷新
/**
* @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 污染式注入
}
]
]
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。