2016-05-10 3 views
-1

добавить jsrender в мой проект, но когда я сделал разворачивать, SendMeотладчик; [ERROR] 194: 11: идентификатор зарезервированное слово

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

эта линия сделал ссылки на этот вар отладчик;

¿Как я могу изменить имя без перерыва библиотеки?

+0

Откуда у вас был пакет? – nurdyguy

+0

Я скачал с github – Xion

ответ

0

Вы не можете использовать «отладчик» в качестве имени переменной.

0

debugger является зарезервированным словом в Javascript
Заменить его еще на такие слова, как
MyDebugger
Вы можете заменить все debugger на MyDebugger
По Ctrl``+``H в большинстве кодовых редакторов и IDE.

+0

Я не знаю ключевое слово 'identifier', насколько я знаю в Javascript, как и в ES6. Вы можете [просмотреть полный список зарезервированных слов здесь] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Reserved_keywords_as_of_ECMAScript_6). –

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; 
} 

Исходя из этого, я не вижу причин, по которым эта конкретная строка вызовет проблему, если не существует другой синтаксической ошибки, которая присутствует.

+0

Я исследую функцию отладчика в js, но я смотрю во всем проекте и не декларирую в другой части, эта ошибка sendme делает крюк, когда я пытаюсь сделать фиксацию. – Xion

0

JsRender не объявляет var debugger;. Похоже, ваша ошибка генерируется на этапе компиляции. Какое программное обеспечение выводит эту ошибку? Каков ваш процесс сборки/развертывания?

Возможно, вы используете YUICompressor, у которого есть связанная ошибка, - и что ошибка выбрасывается YUICompressor, когда вы уменьшаете ...? См. https://github.com/BorisMoore/jsrender/issues/239. Обходной путь для вашей среды был бы просто для того, чтобы прокомментировать //debugger; Это не сломает ничего.

Смежные вопросы