`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 } ] ] }