【问题标题】:Google closure compiler add file date when compiling谷歌闭包编译器在编译时添加文件日期
【发布时间】:2014-07-09 23:23:15
【问题描述】:

我正在使用 Google Closure Compiler 编译一个 Javascript 文件。我想在编译时插入一个唯一值,我可以用它来附加到另一个 Javascript 文件的文件名中以供网络工作者使用。

我知道您可以使用 --define 通过编译器定义值,但我不确定如何使用动态值来执行此操作。

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

【问题讨论】:

    标签: javascript google-closure-compiler


    【解决方案1】:

    你可能不得不做类似的事情

    /**
     * @define {string}
     */
    var COMPILATION_DATE = '';
    
    var filename = 'myfile.js?' + COMPILATION_DATE;
    

    然后(编辑以添加引号——见 cmets)

    #!/bin/bash
    
    java -jar compiler.jar --define="COMPILATION_DATE='$(date +%F)'" --js=your_file.js ...
    

    使用date --help 找出如何将日期格式化为您想要的格式。

    【讨论】:

    • 感谢您的回复!这正是我正在寻找的,但我收到了这个错误。 java.lang.RuntimeException:--define 标志语法无效:COMPILATION_DATE=
    • 看起来$() 出于某种原因无法正常工作?也许您需要添加引号? --define=COMPILATION_DATE='$(date +%F)'。如果这样的方法不起作用,您可能需要打开一个新问题,标有“bash”(或您实际使用的任何 shell)
    • 感谢您的帮助!它最终与多个引号一起工作。 --define="COMPILATION_DATE='$(date +%F)'"
    猜你喜欢
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    相关资源
    最近更新 更多