webpack4 babel8.X版本用法填坑(babel-loader , @babel/core , @babel/plugin-stransform-runtime, @babel/pr...

先從大體上介紹一下babel8的變化點(diǎn)。

第一,各個(gè)包的名字變了,都以@符號(hào)開(kāi)頭。這個(gè)變化帶來(lái)2個(gè)影響。其一,以前每個(gè)包在node_modules目錄下都是一個(gè)獨(dú)立的文件夾;現(xiàn)在則在node-modules目錄下有個(gè)叫“@babel”的目錄,這里要安裝的所有babel包,都在這個(gè)@babel目錄下保存。其二,在配置的時(shí)候,寫(xiě)法完全變了。

第二,有一些包被徹底廢棄。比如在babel7.X版本中用到的babel-preset-stage-0

    第三,有一些新的包必須引入進(jìn)來(lái)才可以。

  具體用法如下:

1.必須安裝的包如下

需要注意的是,這些@開(kāi)頭的包,在實(shí)用npm安裝時(shí),包名必須用引號(hào)引住,否則npm會(huì)把它當(dāng)做不可識(shí)別的字符。例如:

 npm i babel-loader '@babel/core' -D

  babel-loader沒(méi)有@符號(hào),所以不需要引號(hào)包住;@babel/core則需要用引號(hào)包住。其他以此類推

  這里小版本號(hào)就不要計(jì)較了,只要大版本號(hào)能對(duì)上就都一樣。

  2.各個(gè)包的作用如下

babel-loader:加載器

@babel/core:babel核心包,babel-loader的核心依賴

@babel/preset-env:ES語(yǔ)法分析包

@babel/runtime和@babel/plugin-transform-runtime:babel 編譯時(shí)只轉(zhuǎn)換語(yǔ)法,幾乎可以編譯所有時(shí)新的 JavaScript 語(yǔ)法,但并不會(huì)轉(zhuǎn)化BOM(瀏覽器)里面不兼容的API。比如 Promise,Set,Symbol,Array.from,async 等等的一些API。這2個(gè)包就是來(lái)搞定這些api的。

@babel/plugin-proposal-class-properties:用來(lái)解析類的屬性的。

3.配置webpack.config.js。由于“babel-lodaer”包名字沒(méi)變,api寫(xiě)法也沒(méi)變,還是那么寫(xiě)

 { test: /\.js$/, use: 'babel-loader', exclude: /node_modules/},//處理高級(jí)ES語(yǔ)法的babel_lodaer

4.添加.babelrc配置文件,并在該文件中寫(xiě)下如下配置信息

  {

? ?    "presets": ["@babel/preset-env"],

?    "plugins": ["@babel/plugin-transform-runtime", "@babel/plugin-proposal-class-properties"]

  ? }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容