JavaScript中的"if debug"?

Mar*_*tin 9 javascript debugging visual-studio-debugging

JavaScript或Visual Studio中是否有任何内容可以检测代码是否在调试模式下使用?像C#中的"#if DEBUG",但是对于JavaScript?

Zol*_*ási 7

有点晚了,但我需要同样的方法,直到可行的解决方案后才放弃。

我有一种“主要” JavaScript文件,其中有一行:

Site.DEBUG = false;
Run Code Online (Sandbox Code Playgroud)

然后在代码中,我可以检查该常量。现在,我需要在构建时解决该问题,一些自动化将根据项目配置为我设置此设置。在这里,我找到了fnr.exe命令行工具,用于在文件中查找和替换。这是一个相当不错的工具,还是值得一试的。因此,在这一点上,我已经在项目目录中创建了一个名为的文件夹,BuildScriptsfnr.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"
Run Code Online (Sandbox Code Playgroud)

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

cd $(ProjectDir)BuildScripts
call switch_client_debug.bat $(ProjectDir)ts site.ts false true
Run Code Online (Sandbox Code Playgroud)

及其在Release config中的对:

cd $(ProjectDir)BuildScripts
call switch_client_debug.bat $(ProjectDir)ts site.ts true false
Run Code Online (Sandbox Code Playgroud)

现在,所有内容都像一个咒语,我可以使用日志记录,跟踪,用于Debug和Javascript中的Release配置的特殊逻辑。


Mår*_*röm 5

没有。

#if/ #endif是C#(和其他语言)的预处理程序指令,告诉编译器在编译时有条件地包括/排除代码段。

JavaScript是一种未经预编译的脚本语言,因此拥有这样的预处理程序指令没有多大意义。