2014-10-01 18 views
0

好的,所以我有一個巨大的文件,導致大量文件的連接。shell腳本或grunt工具刪除文件中的行,遵循規則

這並不重要,但它是3個google-closure依賴文件的彙編,還有很多單元測試文件。

我的問題是,每個單元測試文件都需要一些閉包模塊,因爲它們現在都在同一個文件中,當我用phantomjs運行它時,需要多次相同的依賴關係。 。
我需要的是一個腳本,通過文件去,並刪除線(第一之後)被重複,並與goog.require(開始

所以,規則是:

  • 打頭goog.require(
  • 完全相同的線(忽略尾隨和前述空格)存在之前某處

實施例:

goog.provide("app.tests.mvc.PMVCUnitTestBootstrap"); 

goog.require("app.tests.mvc.jsunit"); 
goog.require("app.Bootstrap"); 
goog.require("pmvc.patterns.observer.Observer"); 
goog.require("app.tests.mvc.ApplicationResources"); 
goog.require("app.notifications.SystemNotes"); 
goog.require("lib.puremvc.definitions.notifications.NotificationMapper"); 
goog.require("lib.puremvc.definitions.notifications.NotificationMap"); 
... 
... 
... 
goog.require("app.tests.mvc.jsunit"); //this line is repeated 
goog.require("app.Bootstrap"); //this line is repeated 
goog.require("lib.unittests.helpers.ExpectedFailures"); 
goog.require("lib.filesystem.ConstructableFile"); 
goog.require("lib.filesystem.FileReference"); 
goog.require("lib.utils.ArrayUtil"); 
goog.require("easy.util.GUIDUtil"); 
... 
... 

將成爲

goog.provide("app.tests.mvc.PMVCUnitTestBootstrap"); 

goog.require("app.tests.mvc.jsunit"); 
goog.require("app.Bootstrap"); 
goog.require("pmvc.patterns.observer.Observer"); 
goog.require("app.tests.mvc.ApplicationResources"); 
goog.require("app.notifications.SystemNotes"); 
goog.require("lib.puremvc.definitions.notifications.NotificationMapper"); 
goog.require("lib.puremvc.definitions.notifications.NotificationMap"); 
... 
... 
... 
goog.require("lib.unittests.helpers.ExpectedFailures"); 
goog.require("lib.filesystem.ConstructableFile"); 
goog.require("lib.filesystem.FileReference"); 
goog.require("lib.utils.ArrayUtil"); 
goog.require("easy.util.GUIDUtil"); 
... 
... 

任何幫助將受到歡迎

回答

1

獲取所有唯一的字符串開頭goog.require

grep '^goog.require' yourfile.txt | sort -u > uniq_require.txt 

然後從源

刪除所有goog.require
sed -i '/^goog.require/d' yourfile.txt 

然後拼接結果

cat uniq_require.txt yourfile.txt > result.txt 

沒有測試,只是擦傷。

+0

我會自己測試一下。快回來:) – 2014-10-01 09:29:07

+0

sed:1:「build/tmp/all_the_tests.js」:undefined標籤'uild/tmp/all_the_tests.js' – 2014-10-01 09:40:23

+0

你是如何調用它的? – user3132194 2014-10-01 09:49:19

相關問題