2014-07-09 100 views
1

我正在使用Google Closure編譯器編譯Javascript文件。我想在編譯時插入一個唯一的值,我可以使用該值附加到web worker的另一個Javascript文件的文件名。編譯時使用Google closure編譯器添加文件日期

我知道你可以通過編譯器使用--define定義值,但我不知道如何用動態值來做到這一點。

var filename = "myfile.js?" + __TIMESTAMP_OF_MYFILE_JS__ 
var worker = new Worker(filename); 

回答

2

你可能必須做一些像

/** 
* @define {string} 
*/ 
var COMPILATION_DATE = ''; 

var filename = 'myfile.js?' + COMPILATION_DATE; 

,然後(編輯添加的引言 - 見註釋)

#!/bin/bash 

java -jar compiler.jar --define="COMPILATION_DATE='$(date +%F)'" --js=your_file.js ... 

使用date --help弄清楚如何獲得日期格式完全符合您的要求。

+0

感謝您的回覆!這正是我正在尋找的,但我得到這個錯誤。 java.lang.RuntimeException:--define標誌語法無效:COMPILATION_DATE = –

+0

它看起來像'$()'由於某種原因不工作?也許你需要添加引號? '--define = COMPILATION_DATE ='$(date +%F)''。如果類似的東西不起作用,你可能想要打開一個新的問題,標有「bash」(或者你實際使用的任何shell) – MatrixFrog

+0

感謝您的幫助!它最終與多個引號一起工作。 '--define =「COMPILATION_DATE ='$(日期+%F)'」' –

相關問題