调试器;[错误]194:11:标识符是一个保留字

debugger; [ERROR] 194:11:identifier is a reserved word

本文关键字:保留字 一个 错误 调试器 标识符      更新时间:2023-09-26

我将jsrender添加到我的项目中,但当我进行部署时,请发送

> Errors found for public/js/xxxxxxxx/jsrender.js
>  > [ERROR] 194:11:identifier is a reserved word
>  > [ERROR] 1:0:Compilation produced 1 syntax errors.

这一行引用了这个var调试器;

?如何在不破坏库的情况下更改名称?

debugger本身是Javascript中的一个保留字,通常用于调试,因此您不能声明具有该名称的变量:

var debugger; // This doesn't work
debugger;     // This should work (common-use of debugger)

了解jsrender.js

根据您引用的行的jsrender.js的假定标记,它似乎只是一个debugger调用,应该可以工作:

function dbgBreak(val) {
    // Usage examples: {{dbg:...}}, {{:~dbg(...)}}, {{dbg .../}}, {^{for ... onAfterLink=~dbg}} etc.
    try {
        debugger; // THIS IS THE LINE REFERENCED
        console.log("JsRender dbg breakpoint: " + val);
        throw "dbg breakpoint"; // To break here, stop on caught exceptions.
    }
    catch (e) {}
    return this.base ? this.baseApply(arguments) : val;
}

基于此,我看不出这一特定行会导致问题的任何原因,除非存在其他语法错误。

不能将"调试器"用作变量名。

JsBinder不声明var debugger;。看起来您的错误是由编译步骤引发的。哪个软件正在输出该错误?您的构建/部署过程是什么?

可能是您正在使用YUICompressor,它有一个相关的错误,并且该错误是由YUICompress在缩小时抛出的。。。?看见https://github.com/BorisMoore/jsrender/issues/239.对于您的环境,一个变通方法就是注释掉//debugger;。这样做不会破坏任何东西。