【问题标题】:debugger; [ERROR] 194:11:identifier is a reserved word调试器; [错误] 194:11:标识符是保留字
【发布时间】:2016-05-10 21:07:57
【问题描述】:

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

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

【问题讨论】:

  • 你从哪里得到的包裹?
  • 我从github下载的

标签: javascript jsrender


【解决方案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;
}

基于此,我看不出有任何理由表明该特定行会导致问题,除非存在其他一些语法错误。

【讨论】:

  • 我研究了js中的函数调试器,但是我查看了整个项目并且它没有在其他部分声明,当我尝试提交时,这个错误给我一个钩子。
【解决方案2】:

您不能使用“调试器”作为变量名。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      相关资源
      最近更新 更多