沐鳴首頁_簡單介紹下各種 JavaScript 解析器

,
,各種js解析器是前端工程化的基石,可以說如果沒有它,很多工程化都無法正常執行,我們每天用到的babel、webpack、eslint、TypeScript背後都需要一套對應的js解析器,今天我們來看看,目前市場上有哪些常用的解析器,他們各自又擁有什麼特性尼?,1.1 uglify-js ,1.2 Esprima ,** **用於混淆和壓縮代碼,**因為一些原因,uglify-js自己內部實現了一套AST規範[1],也正是因為它的AST是自創的,不是標準的ESTree,es6以後新語法的AST,都不支持,所以沒有辦法壓縮最新的es6的代碼,如果需要壓縮,可以用類似babel這樣的工具先轉換成ES5。,創作時間:2010-8-1 作品地址:https://github.com/mishoo/UglifyJS 作者介紹:Mihai Bazon,Lisp程序員,Emacs愛好者,貌似是羅馬尼亞人 作者博客:,在說js解析器前,我們需要先了解下ESTree這個項目,這個項目的初衷通過社區的力量,保證和es規範的一致性,通過自定義的語法結構來表述JavaScript的AST,後來隨着知名度越來越高,多位知名工程師的參与,使得變成了事實意義上的規範,目前這個庫是Mozilla和社區一起維護的。,如果沒有AST規範,那麼也就意味着根本無法造出對應的解析器,而如果AST規範不統一,一些相應的工具庫就不能很好的互通有無,比如webpack就無法正常的使用babel相關插件。,正是因為EsTree的定義的規範,所以現在所有的js解析器或者編譯器,基本上都繞不開它,如果你有志於自己寫一個js解析器,那它的文檔你一定需要讀一遍。,