2013-01-12 47 views
0

有什麼方法可以解析或模擬JavaScript文件的內容,並確定它需要什麼未定義的引用以及它導出的引用是什麼?C#/。NET和JavaScript:確定隱式導出和導入.js文件

我正在尋找一種方法來自動確定Web應用程序的JavaScript文件的巨集合的正確加載順序。每個文件本質上都是一個模塊,但許多文件具有奇怪的名稱和額外的實用程序代碼片段;該代碼及其組織非常呆板,如果無法自動執行,我們將手動進行數週。

回答

1

這是一個廣泛的問題,這可能意味着一個非平凡的解決方案。一開始會看看Jurassic之類的東西,看它是否讓你看看它的AST,並找出哪些變量在哪個範圍內解析。如果這些要在瀏覽器中運行,那麼也應該考慮在Javascript中,全局範圍是window對象,您可以通過它「導入」和「導出」,並且這可以是別名,因爲誰知道需要做什麼一些數據流分析。

另一種可能的選擇是查看縮小器的實現(我試試UglifyJS,因爲它明確支持解析爲AST,然後構建縮小),因爲這聽起來像是在確定時需要做什麼哪些變量名稱不應縮寫。也就是說縮小比例允許不準確,並接受誤報,這可能是一個問題。