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

时间:2016-05-10 21:07:57

标签: javascript jsrender

我将jsrender添加到我的项目中,但是当我进行部署时,sendme

> 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调试器;

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

3 个答案:

答案 0 :(得分:1)

debugger本身是Javascript中的保留字,通常用于调试,因此您无法使用该名称声明变量:

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

了解jsrender.js

基于looking at the assumed markup for jsrender.js for the line that you referenced,它似乎只是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;
}

基于此,除非存在其他语法错误,否则我不会发现此特定行会导致问题的任何原因。

答案 1 :(得分:0)

您无法使用"调试器"作为变量名称。

答案 2 :(得分:0)

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

可能是你正在使用YUICompressor,它有一个相关的bug - 并且YUICompressor在缩小时会抛出错误......?见https://github.com/BorisMoore/jsrender/issues/239。对您的环境采取的解决方法就是注释//debugger;这样做不会破坏任何内容。