【发布时间】:2011-08-25 19:49:29
【问题描述】:
我正在寻找一个 JavaScript 缩小器,它将对类似于 conditional compilation directives 的东西提供某种支持。
例如,原始的 JavaScript 代码可能类似于以下内容:
//#if Dev
showLoginScreen();
//#else
login("DevUser", "qwerty1");
//#endif
因此原始代码可能包含指令#define Dev,但一旦投入生产,#define Dev 将被删除,并且压缩器将从其输出中排除 login("DevUser", "qwerty1"); 行。
是否有任何缩小器支持这种行为?
【问题讨论】:
-
我不知道具有此功能的 minifier,但我认为在向一个缩小器。基本上就像使用生成的 HTML 所做的一样(例如,通过带有 .erb 文件的 Ruby 或带有 .php 文件的 PHP)。
-
闭包编译器支持定义。
-
@Stephen Chung - 你能链接到任何关于使用闭包编译器和
defines 的资源吗? -
你可以到 Closure 编译器主页阅读文档。您可以在 JsDoc 表示法中执行 @define,然后使用 --define 开关在命令行中设置变量。
-
@Stephen Chung - 看起来闭包支持不同类型的
define、one which can override variable values。这不是我要找的;我需要条件编译。我希望根据define从最终输出中删除代码。
标签: javascript minify conditional-compilation