2015-09-08 4 views
0

Есть ли способ получить более четкие сообщения об ошибках, когда что-то не так с ember?Улучшенные ошибки с Ember

К примеру, у меня есть эта ошибка 05:10:32,332 Error: Assertion Failed: A helper named 'eq' could not be found1 vendor.self-4fd4ab06f1f66c1cec72e1ec3a2c99328df792e46fb1fdcd0258c341b30a7c3b.js:24472:0 . Эта ошибка не является предметом вопроса, это всего лишь пример.

Я не знаю, где eq. Консоль указала эту функцию:

function EmberError() { 
    var tmp = Error.apply(this, arguments); 

    // Adds a `stack` property to the given error object that will yield the 
    // stack trace at the time captureStackTrace was called. 
    // When collecting the stack trace all frames above the topmost call 
    // to this function, including that call, will be left out of the 
    // stack trace. 
    // This is useful because we can hide Ember implementation details 
    // that are not very helpful for the user. 
    if (Error.captureStackTrace) { 
     Error.captureStackTrace(this, _emberMetalCore.default.Error); 
    } 
    // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. 
    for (var idx = 0; idx < errorProps.length; idx++) { 
     this[errorProps[idx]] = tmp[errorProps[idx]]; 
    } 
    } 

Это не связано с моей проблемой.

Obviouly, я искал eq в своем коде и не дал никаких результатов. Я полагаю, что это в модуле, но использование grep очень неэффективно.

Иногда есть стек, но он не очень эффективен. Найти аддон или источник в моем коде в большом vendor.js или myapp.js не является идеальным.

Есть ли лучшее решение?

+0

На мой взгляд, большинство яваскрипта ошибок можно найти только благодаря возможности отладчика в консоли. Я бы предложил вам включить отладчик, проверить трассировку стека вызовов. Проверка трассировки стека наверняка даст некоторое представление об источнике ошибки. – phkavitha

+0

Я закрою этот вопрос, потому что я видел, чем консоль Chrome является более явной, чем firefox. Благодарю. – Dougui

ответ

0

Я думаю, что что-то в одном из ваших аддонов или другого стороннего кода использует ember-truth-helpers addon.

vendor.js обычно содержит код третьей стороны, который вы импортировали, а не код, который вы написали.

Что касается основной проблемы, это действительно зависит от создателя стороннего кода, который вы импортировали, для документирования его зависимостей и обеспечения их установки при установке этой зависимости. Это действительно не провал самого Ember, он сказал вам, что нет помощника с именем eq и дал вам номер строки в предварительно скомпилированном шаблоне, где использовался eq. Вы можете использовать вкладку источников в Chrome для перехода к строке 24472 в vendor.self-4fd4ab06f1f66c1cec72e1ec3a2c99328df792e46fb1fdcd0258c341b30a7c3b.js

+0

Как я уже сказал в комментариях, я удалю вопрос, потому что трасса более удобна для пользователя с хром, чем с firefox. Я думаю, это была моя проблема. – Dougui

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