//这段代码展示了如何根据不同的环境（开发环境或生产环境）动态地配置Babel插件。在生产环境下，它
//会移除所有的console语句以减少代码体积，并且使用了一些插件来优化Vue.js项目的打包结果和运行时性能。
// 定义一个空数组，用于存放生产环境下需要用到的Babel插件
const prodPlugins = []

// 检查当前环境变量是否为生产环境（NODE_ENV === 'production'）
if (process.env.NODE_ENV === 'production') {
  // 如果是生产环境，则向prodPlugins数组中添加'transform-remove-console'插件
  // 这个插件的作用是在构建生产代码时移除所有的console.*调用，以减少打包后的文件大小和提高运行效率
  prodPlugins.push('transform-remove-console')
}

// 导出Babel配置对象
module.exports = {
  // 预设（presets）数组，定义了Babel转译时使用的预设集
  'presets': [
    // 使用Vue CLI提供的Babel预设集，适用于Vue.js项目
    '@vue/cli-plugin-babel/preset'
  ],
  // 插件（plugins）数组，定义了Babel转译时使用的插件
  'plugins': [
    // 使用'component'插件，配合element-ui库使用
    // 该插件可以按需加载element-ui的组件和样式，减少打包后的文件大小
    [
      'component',
      {
        'libraryName': 'element-ui',  // 指定按需加载的库名
        'styleLibraryName': 'theme-chalk'  // 指定样式库的名称
      }
    ],
    // 使用展开运算符（...）将prodPlugins数组中的插件添加到这里
    // 这样，只有在生产环境下，'transform-remove-console'插件才会被包含在最终的插件列表中
    ...prodPlugins,
    // 添加'@babel/plugin-syntax-dynamic-import'插件
    // 该插件允许Babel解析动态import()语法，这对于代码分割和懒加载非常有用
    '@babel/plugin-syntax-dynamic-import'
  ]
}