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

      }

    ]

  ]

}
相關文章
相關標籤/搜索