Babel-loader,babel-core和babel-preset之间是什么关系

`babel-loader` 是一个 npm 包,它使得 webpack 能够经过 babel 转译 JavaScript 代码。vue

(在 babel 7 中 `babel-core` 和 `babel-preset` 被建议使用 `@babel` 开头声明做用域,所以应该分别下载 `@babel/core` 和· `@babel/presets`。node

就相似于 vue-cli 升级后 使用@vue/cli同样的道理 )webpack

babel 的功能在于「代码转译」,具体一点,即将目标代码转译为可以符合指望语法规范的代码。在转译的过程当中,babel 内部经历了「解析 - 转换 - 生成」三个步骤。而 `@babel/core` 这个库则负责「解析」,具体的「转换」和「生成」步骤则交给各类插件(plugin)和预设(preset)来完成。web

`@babel/preset-*` 实际上就是各类插件的打包组合,也就是说各类转译规则的统一设定,目的是告诉loader要以什么规则来转化成对应的js版本chrome

---vue-cli

.babelrc示例
{

  "presets": [

    [

      '@babel/preset-env',

      {

        'target':{

          "browser":["ie>=8","chrome>=62"],

          "node":"8.9.0",

          "safari":"tp"

        },

        "modules":false,

        "debug":true,

        "uglify":true

        "useBuiltIns":true

      }

    ]

  ]

}
相关文章
相关标签/搜索