【问题标题】:Use h5bp / ant-build-script to remove debug output使用 h5bp / ant-build-script 删除调试输出
【发布时间】:2013-02-05 06:04:21
【问题描述】:

在 ant-build-script 文档中,它说我可以用 cmets 标记我的脚本,以说明要缩小和合并哪些 Javascript 文件。





有没有一种方法可以使用类似的方法来禁用调试输出,或删除任何文件(Javascript、PHP 等)中的特定行

我正在尝试完成的示例:


console.log("Starting test");
console.log("Test 2");

此外,使用相同的示例,如果它可以替换一行。这方面的一个例子是,如果我希望它将变量从本地测试目录更改为远程生产目录。

我希望这是有道理的,我很感激任何帮助。

谢谢!

【问题讨论】:

    标签: ant html5boilerplate


    【解决方案1】:

    如果您尝试使用 h5bp 默认 Google Closure Compiler 删除 Javascript 行,我建议查看 @define JSDoc Tag

    /** @define {boolean} */ 
    var DEBUG = true;
    

    然后,在您的 project.properties 文件中查找:# Closure Compiler Options 并设置:tool.closure.opts = --define DEBUG=false

    最后,在生产环境中将任何你想忽略的代码包装在一个条件中:

    if (!DEBUG) {
        console.log("Starting test");
        console.log("Test 2");
    }
    

    @define JSDoc 标签也可以帮助您解决第二个问题。

    /** 
     * @define {string} 
     */ 
    var AJAX_URL = 'http://localhost/';
    
    console.log(AJAX_URL);
    

    使用编译选项:--compilation_level ADVANCED_OPTIMIZATIONS --define AJAX_URL=\'http://example.com/\'(注意:根据您的平台,您需要对引号进行转义)结果代码为:

    console.log("http://example.com/");
    

    当然有很多方法可以解决这个问题,请参阅:

    【讨论】:

    • 感谢您的回复。这适用于 JavaScript,但我希望有一个更通用的“用那个替换这个”,因为当我将网站转移到生产环境时,我需要为 Magento 替换部分 XML 文件。
    • h5bp 中没有直接为此内置任何内容,但您可以查看 ant copy 任务以获取有关如何使用过滤器集的示例。查看build.xml 中的-copyall 目标。这就是 h5bp 进行大量复制文件的地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多