2015-10-28 74 views
0

我有一個JavaScript構建文件,這是unminified;它包含原型類定義。是否有任何工具可以用來將構建文件分解爲單獨的文件,假設每個原型/類定義有一個文件?反轉一個Javascript生成

該構建文件如下所示,其中許多對象按以下方式定義,全部連接到單個文件中。我想打破這個文件。我沒有訪問原始的源代碼,我基本上只是以這個構建文件的形式給出了一個轉儲,但它在這種形式中難以管理,因爲它的10k +代碼行。

MyClass = function(){ 
} 
MyClass.prototype.foo = function(){ 
} 
+2

在你花時間尋找/建造一個工具的時候,你可以手工分割該文件並喝杯茶。如果你正在做的是將構造函數分離到不同的文件中,10K行並不是很多。 – Andy

+0

是的,但是,我可能還需要找出所有相互依賴關係,並轉換爲節點模塊,或使用require.js或類似的東西。 IDE是否有用於類提取的重構工具,類似於Eclipse中的Java? – user1152226

+0

grep用於構造函數定義並按行號拆分 – Bergi

回答

1

我會建議(在評論)去做手工的方式,但如果你堅持自動化它的一些方式,你可以隨時使用JavaScript的工作。

一種方法是查找構造函數拋出像([^\.=\s]+[^=]*=[\s]*function[\s]*[(]+[^)]*[)][\s]*[{]*)這樣的正則表達式,並從文件中提取所有'class'.prototype.'something',解析整個文件,然後在做出任何類型的訂購你更喜歡。

另一種方式是使用javaScript解析器和組相關的函數定義拋出令牌檢查(這是一個矯枉過正的問題,但對於學習目的可能很有趣)。