debugging JavaScript中的“if debug”?

w1jd8yoj  于 2022-12-19  发布在  Java
关注(0)|答案(4)|浏览(189)

在JavaScript或Visual Studio中有没有什么东西可以检测代码是否在调试模式下使用?类似于C#中的“#if DEBUG”,但对于JavaScript来说?

iezvtpos

iezvtpos1#

有点晚了,但我需要同样的,不能给予,直到一个可行的解决方案。
我有一个“main”javascript文件,其中有一行代码:

Site.DEBUG = false;

然后在代码中我可以检查这个常量。现在我需要在构建时解决这个问题,一些自动化会根据项目配置为我设置这个常量。在这里我找到了fnr.exe命令行工具,用于在文件中查找和替换。这是一个相当不错的实用程序,无论如何都值得检查一下。所以在这里我在项目目录中创建了一个名为BuildScripts的文件夹。我已经将fnr.exe文件复制到其中,并创建了一个如下所示的批处理文件。

switch_client_debug.bat

REM Params: path to folder, filename, change-DEBUG-from-this, to-this
fnr.exe --cl --dir "%1" --fileMask "%2" --caseSensitive --showEncoding --find "DEBUG = %3" --replace "DEBUG = %4"

然后,我在Web项目中定义了相应的预构建事件,如下所示:

cd $(ProjectDir)BuildScripts
call switch_client_debug.bat $(ProjectDir)ts site.ts false true

及其在发布配置中的配对:

cd $(ProjectDir)BuildScripts
call switch_client_debug.bat $(ProjectDir)ts site.ts true false

现在一切都像一个魅力,我可以有日志,跟踪,调试和发布配置在Javascript的特殊逻辑。

nzrxty8p

nzrxty8p2#

没有。
#if/#endif是C#(和其他语言)中的预处理器指令,告诉编译器在编译时有条件地包含/排除代码段。
JavaScript是一种没有预编译的脚本语言,因此使用这样的预处理器指令没有多大意义。

bis0qfac

bis0qfac3#

只有IE才有条件编译:

/*@cc_on
@set @version = @_jscript_version
@if (@_win32)
document.write("You are running 32 bit IE " + @version);
@elif (@win_16)
document.write("You are running 16 bit IE " + @version);
@else @*/
document.write("You are running another browser or an old IE.");
/*@end @*/

nice article here

niwlg2el

niwlg2el4#

晚了点,但下面是我在Visual Studio上所做的

// #region Uncomment when in debug mode
// localStorage.clear();
// #endregion

相关问题