|
更快的Babel 7編譯器首次亮相JavaScript,TypeScript但TypeScript并不完全支持,而Babel 7確實(shí)打破了一些現(xiàn)有的代碼
Babel 7是對(duì)JavaScript編譯器兩年的升級(jí)版本,現(xiàn)已推出,具有速度提升和TypeScript支持。
較快的Babel應(yīng)該減少構(gòu)建時(shí)間。已經(jīng)進(jìn)行了更改以優(yōu)化代碼。已經(jīng)從Google的V8 JavaScript引擎團(tuán)隊(duì)接受了補(bǔ)丁。
此外,Babel現(xiàn)在提供TypeScript支持。您使用@ babel / preset-typescript解析類型語(yǔ)法,類似于Babel處理Flow靜態(tài)類型檢查器的方式。但Babel不對(duì)TypeScript代碼進(jìn)行類型檢查;它只轉(zhuǎn)換代碼并將編譯,無論可能存在哪種類型的錯(cuò)誤。 Babel確實(shí)將最新的JavaScript功能轉(zhuǎn)換為較舊的運(yùn)行時(shí)和瀏覽器。
Babel 7的其他功能包括:
babel-upgrade工具,用于自動(dòng)處理重大變化。該工具在package.json和babelrc config中具有依賴關(guān)系。 Babel團(tuán)隊(duì)建議直接在帶有npx babel-upgrade的Git倉(cāng)庫(kù)上運(yùn)行它,或者你可以直接用npm i babel-upgrade -g安裝它。
對(duì)于JavaScript配置文件,現(xiàn)在有babel.js.config。這些文件在JavaScript生態(tài)系統(tǒng)中很常見。
通過覆蓋啟用選擇性配置,用于為每個(gè)glob指定不同的配置。
已經(jīng)對(duì)某些插件的松散選項(xiàng)進(jìn)行了更改,而其他插件則添加了新選項(xiàng)。但是使用這些選項(xiàng)會(huì)使開發(fā)人員選擇不符合規(guī)范的行為。當(dāng)關(guān)閉編譯以本機(jī)使用語(yǔ)法時(shí),這可能成為一個(gè)問題。
以實(shí)驗(yàn)方式展示自動(dòng)填充。在不支持它們的環(huán)境中,Promise和符號(hào)等功能需要使用Polyfill。在區(qū)分Babel作為編譯器和polyfill所做的事情時(shí),這很重要。
調(diào)用者選項(xiàng)已添加到@ babel / core,因此工具可以將元數(shù)據(jù)傳遞給預(yù)設(shè)和插件。
Babel 7確實(shí)打破了幾項(xiàng)現(xiàn)有功能:
它不再支持未維護(hù)的節(jié)點(diǎn)版本0.10,0.12,4,5。
它為某些面向用戶的包引入了@ babel / core的peerDependency,例如babel-loader和babel-cli。
它通過切換到“作用域”包移動(dòng)到@babel命名空間。這有助于區(qū)分官方軟件包,因此babel-core變?yōu)锧 babel / core。
從beta 31開始,JSX Fragment支持可用。
未來版本的計(jì)劃功能包括:
|
|