【发布时间】:2013-09-21 03:56:25
【问题描述】:
我想通过删除所有 console.log("blah blah") 调试语句来准备我的 JS 代码生产。 this popular SO answer (code below) 对如何使用流行的 JS 压缩器/编译器 Google's closure compiler 执行此操作感到困惑。
/** @const */
var LOG = false;
...
LOG && log('hello world !'); // compiler will remove this line
...
//this will even work with `SIMPLE_OPTIMALIZATIONS` and no `--define=` is necessary !
两个问题:
多个文件: 上面的代码如何处理多个文件(下面的基本示例)?它必须处于封闭状态,对吗?这难道不是意味着您必须在每一页上都放置此代码吗?此外,这是否也意味着您必须在每页的这些闭包中将所有想要成为全局变量的变量从
var foo='bar'更改为var window.foo='bar';?小问题:不应该是
console.log('...')而不是log('...'),因为log()给出了错误?我在这里遗漏了什么明显的东西吗?
<script src='/assets/js/file1.js'></script>
<script src='/assets/js/file2.js'></script>
file1.js 的内容:
var foo='bar';
console.log("foo"+foo);
file2.js 的内容
var baz='bazzy';
console.log("baz"+baz);
【问题讨论】:
-
log是一个通用的日志记录函数,它可以简单地作为console.log的包装器,或者可以提供一些其他类型的日志记录。它只是用于演示。该定义留给读者作为练习。 -
@ChadKillingsworth 谢谢,我不知道这是练习还是我尚未了解 JS 的东西。
标签: javascript debugging global-variables closures google-closure-compiler