JScript条件编译+JavaScript压缩=预处理器?

JScript条件编译+JavaScript压缩=预处理器?,javascript,compression,conditional-compilation,Javascript,Compression,Conditional Compilation,有没有JS压缩器允许您使用ifdef预处理类型 如果@set定义了一个“变量”,那么JS压缩器不能删除条件编译逻辑在未编译时定义的代码吗 我有点不确定JScript语法,但可能是这样的 /*@cc_on @set (@version = 1) @if (@version == 1) alert('Version 1'); @else alert('Not version 1'); @end @*/ 可以压缩成 alert('Ver

有没有JS压缩器允许您使用ifdef预处理类型

如果@set定义了一个“变量”,那么JS压缩器不能删除条件编译逻辑在未编译时定义的代码吗

我有点不确定JScript语法,但可能是这样的

/*@cc_on
    @set (@version = 1)
    @if (@version == 1)
        alert('Version 1');
    @else
        alert('Not version 1');
    @end
@*/
可以压缩成

alert('Version 1');

闭包编译器可以通过注释保留注释,但是闭包编译器和任何其他基于解析树的压缩器都不能很好地使用CC

这是个难题。处理条件编译需要对多个可能的解析树进行推理,而不仅仅是一个

一些真正简单的压缩器只是将JS作为一系列标记来处理,而不是操纵解析树,这些压缩器在条件编译中可能会做得更好,但总体上在压缩方面做得更差

一种解决方案可能是编译所有源文件,除了一个具有条件编译指令且仅导出其他源文件使用的变量的源文件。

两个是和。正如Mike所说,两者都使用简单的令牌解析。