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