2013-03-18 30 views
1

我知道,谷歌關閉編譯器可以讓我編譯幾個文件到一個單一的一個類似如下:如何幾個文件編譯成相同的人

java -jar compiler.jar --js assets/js/file1.js 
    assets/js/file2.js --js_output_file assets/js/file.min.js 

但我需要編譯的文件,並把它放到相同的名稱在這樣的文件夾中:

java -jar compiler.jar --js assets/js/file1.js 
    --js_output_file assets/js/file1.js 

java -jar compiler.jar --js assets/js/file2.js 
    --js_output_file assets/js/file2.js 

但它不起作用。文件被損壞。你可以幫我嗎?

+0

編譯器不支持這一點。 請參閱http://stackoverflow.com/questions/14621504/use-closure-compiler-command-line-minify-and-replace-original-file – 2013-03-18 13:06:39

回答

-1

在命令行簡單地使用多個「--js」 PARAMS:

java -jar compiler.jar --js 1.js --js 2.js --js 3.js --js_output_file all.js 
0

首先,也是最重要的是,你的編譯腳本設置覆蓋源文件。你真的,絕對積極這是你打算做什麼?編譯是一個有損耗的轉換:它破壞註釋(包括類型註釋),重命名所有內容,積極重構,內聯到處,並且通常將你的努力工作變成不可維護的混亂。

java -jar compiler.jar --js assets/js/file1.js 
    --js_output_file assets/js/file1.js 

java -jar compiler.jar --js assets/js/file2.js 
    --js_output_file assets/js/file2.js 

如果我把你的話,你實際上已經做了上述情況,這將不幸解釋你「現在我的文件已損壞」的問題。我希望你有一個備份。


更一般地說,請注意Compiler Manual。所有這一切,但特別是關於inconsistent property names的部分。如果編譯器不知道你的源文件如何與彼此相關,那麼閉包就不可能一致地重命名它們的內容。

如果您打算創建預編譯的.dll樣式共享對象,則由於手冊中記錄的名稱碎片問題而不支持此功能。另外,不需要預編譯,編譯速度相當快。改爲分享您的源文件。

請自己製作一個構建目錄,並從您的源代碼中將編譯器輸出遠離。代碼在第一遍時永遠不會完美構建。即使所討論的代碼是一個簡單的數學實用程序,您也會想要構建和測試超過幾次。

總結:

(1)entire manual(2)Externs或嘗試goog.require(3)預編譯被高估,(4)永遠不覆蓋有源文件,(5)保持頻繁的備份。

相關問題