發(fā)布于:2021-02-19 00:00:24
0
213
0
Babel工具鏈是很棒的。在ES6特性進入瀏覽器之前,我們已經(jīng)使用Babel編寫了ES6 JavaScript,我們使用它來解析JavaScript和編寫JSX等等。Babel可以用JavaScript語言做任何事情,我剛剛了解到Babel工具鏈的另一種用法:babili, ES6+ aware JavaScript minifier。
在創(chuàng)建它時,許多其他JavaScript壓縮程序都無法進行ES6壓縮,但是當您擁有像Babel這樣令人驚嘆的,具有前瞻性的解析器時,創(chuàng)建支持ES6 +的壓縮程序?qū)⒆兊酶尤菀住?/span>
從命令行使用babili
快速縮小時,我更喜歡從命令行使用babili:
// Sample source code:
class Mangler {
constructor(program) {
this.program = program;
}
}
new Mangler(); // without this it would just output nothing since Mangler isn't used
// Before:
// ES2015+ code -> Babel -> Babili/Uglify -> Minified ES5 Code
var a=function a(b){_classCallCheck(this,a),this.program=b};new a;
// After:
// ES2015+ code -> Babili -> Minified ES2015+ Code
class a{constructor(b){this.program=b}}new a;
需要注意的是巴比利確實 不transpile ES5的JavaScript涅槃之前-你需要使用像一個很好的工具lebab從ES5來獲得ES6 +。假設(shè)您的源文件中確實有ES6,您會發(fā)現(xiàn)babili巧妙地縮小了所有代碼!
通過Node.js使用babili
babili是用JavaScript實現(xiàn)的JavaScript解析器,也可以通過Node.js API使用。您還可以使用數(shù)十個babili插件來自定義縮小版本。查閱文檔以獲取 令人印象深刻的基準測試和Node.js使用信息。
Babel與任何流行的JavaScript框架一樣,對Web上的JavaScript產(chǎn)生了很大的影響,并且將來會繼續(xù)這樣做。如果您還沒有探索 Babel工具鏈,并且它有太多的插件,請花一些時間看看它們。對于開發(fā)人員來說,能夠在邊緣JavaScript語言功能進入瀏覽器之前對其進行編寫和試驗是一個優(yōu)勢,無論是讓他們找到一份工作,還是簡單地使其與語言保持同步。