Vue中babel.config.js配置示例詳解
1 概述
Babel 相當(dāng)于一個中介,一邊是用戶,另一邊是瀏覽器。這幾年,JavaScript 發(fā)生了很大的變化,許多新特性在很多瀏覽器里都不支持。
Babel 的主要作用就是規(guī)避這些問題,可以確保 JavaScript 代碼兼容所有的瀏覽器,比如 IE 11。
2 Babel 的工作原理
Babel 使用 AST 把不兼容的代碼編譯成 ES15 版本,因?yàn)榇蠖鄶?shù)瀏覽器都支持這個版本的 JavaScript 代碼。
2.1 如何設(shè)置?
在控制臺運(yùn)行如下命令:
npm install --save-dev @babel/core @babel/cli @babel/preset-env
應(yīng)用程序的根目錄會默認(rèn)創(chuàng)建一個 babel.config.json
文件。Babel 將遍歷 src
目錄下的所有 JS 文件。
{ "presets": [ [ "@babel/env", { "targets": { "edge": "17", "firefox": "60", "chrome": "67", "safari": "11.1" }, "useBuiltIns": "usage", "corejs": "3.6.5" } ] ] }`
把 babel.config.json
添加到 package.json
里。
"build": "./node_modules/.bin/babel src --out-dir build"
然后,執(zhí)行如下命令:
npm run build
這時,在 build
文件夾里就生成了轉(zhuǎn)換代碼。
2.2 @babel/core @babel/cli @babel/preset-env 到底做了哪些事情
- @babel/core:Babel 的所有核心功能都在這里
- @babel/cli:提供了 CLI 工具,使我們能夠運(yùn)行
npm run build
- @babel/preset-env:提供預(yù)置功能
3 插件
Babel 使用插件來執(zhí)行代碼轉(zhuǎn)換,插件其實(shí)就是用 JavaScript 所寫的程序片段。比如@babel/plugin-change-Arrow-function
,它的代碼實(shí)現(xiàn)如下:
// From this const fn = () => 1; // Converted to this var fn = function fn() { return 1; };
上面提到的 @babel/preset-env
本身包含了一組插件,可以處理手動設(shè)置插件帶來的很多問題,大多數(shù)情況下能夠智能處理代碼。
Polyfill
Polyfill 是 JavaScript 代碼片段,兼容原本不支持的舊版瀏覽器。Polyfill 模塊包括core-js
和一個自定義的重生器運(yùn)行時,以模擬完整的ES2015 +
環(huán)境。如果要使用 PolyFill 必須運(yùn)行如下命令:
// Install via npm install --save @babel/polyfill // Add via import "core-js/stable"; import "regenerator-runtime/runtime";
4 Babel 配置文件的優(yōu)先級
從低到高依次為:
- babel.config.json
- babelrc.json
- @babel/cli
依照優(yōu)先級,babel.config.json
會被 . babelrc
覆蓋,依次類推。
5 Babel 有哪些值得注意的選項(xiàng)
以下面的配置為例:
{ "presets": [ [ "@babel/env", { "targets": { "edge": "17", "firefox": "60", "chrome": "67", "safari": "11.1" }, "useBuiltIns": "usage", "corejs": "3.6.5" } ] ], }
如果要縮減輸出代碼,需要增加選項(xiàng) "minified": true
如果要忽略某些文件,則添加 ignore: ["file or directory path"]
只編譯特定的文件或文件夾,則添加
// For Files "only" : ["./src/some_file.js"], // For Directory "only" : ["./src"],
總結(jié)
到此這篇關(guān)于Vue中babel.config.js配置的文章就介紹到這了,更多相關(guān)Vue babel.config.js配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue使用element-plus依賴實(shí)現(xiàn)表格增加的示例代碼
這篇文章主要為大家詳細(xì)介紹了vue使用element-plus依賴實(shí)現(xiàn)表格增加,文中示例代碼講解的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2023-12-12詳解vue2如何實(shí)現(xiàn)點(diǎn)擊預(yù)覽本地文件
這篇文章主要為大家詳細(xì)介紹了vue2如何實(shí)現(xiàn)點(diǎn)擊預(yù)覽本地的word、excle、pdf文件,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04ElementUI修改實(shí)現(xiàn)更好用圖片上傳預(yù)覽組件
這篇文章主要為大家介紹了ElementUI修改實(shí)現(xiàn)更好用圖片上傳預(yù)覽組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09vue中computed和watch的使用實(shí)例代碼解析
這篇文章主要介紹了vue中computed和watch的綜合運(yùn)用實(shí)例,主要需求是點(diǎn)擊按鈕實(shí)現(xiàn)天氣的切換效果結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04Vite創(chuàng)建項(xiàng)目的實(shí)現(xiàn)步驟
隨著 Vite2 的發(fā)布并日趨穩(wěn)定,現(xiàn)在越來越多的項(xiàng)目開始嘗試使用它。本文我們就介紹了Vite創(chuàng)建項(xiàng)目的實(shí)現(xiàn)步驟,感興趣的可以了解一下2021-07-07Vue中watch、computed、updated三者的區(qū)別及用法
這篇文章主要介紹了Vue中watch、computed、updated三者的區(qū)別及用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07