2016-11-18 2 views
1

В настоящее время я использую windows.onerror, чтобы регистрировать ошибки в обработке. Я использую webpack для связывания нашего javascript и использования плагина uglify для минимизации. К сожалению, ErrorEvent объект lineno и columno исходят из миниатюрного блоба, созданного webpack. Webpack создает файлы с исходными файлами по умолчанию. Есть ли все равно, чтобы получить правильные lineno и columno?Webpack & sourcemaps?

w.addEventListener("error", handleError, true); 

function handleError(e) { 

    let errorToLog = {}; 

    if (e.message) { 
     errorToLog.ErrorMessage = e.message; 
    } 

    if (e.filename) { 
     errorToLog.source = e.filename; 
    } 

    if (e.lineno) { 
     errorToLog.lineNumber = e.lineno; 
    } 

    if (e.colno) { 
     errorToLog.columnNumber = e.colno; 
    } 

    if (e.error.stack) { 
     errorToLog.stackTrace = e.error.stack; 
    } 

ответ

4

`devtool' настройка Используйте WebPack для добавления источника карты:

{ 
    devtool: "#inline-source-map" 
} 

Обратите внимание, что при использовании полной карты источника добавит накладные расходы на свое время transpile, так что если вы можете жить без номера столбца во время используйте вместо этого более быстрый cheap-module-inline-source-map:

{ 
    devtool: "#cheap-module-inline-source-map" 
} 
+0

Разве это единственная разница между этими двумя? –

+1

@ adam-beck [yep] (https://webpack.github.io/docs/configuration.html). 'cheap-source-map' без части' module', когда webpack начинает отбрасывать реальные, полезные данные. – ssube

0

Существует много возможных проблем.

Наиболее распространенным является то, что uglify теперь требует явного sourcemap: true или он разбивает вашу исходную карту. Значение по умолчанию - false, потому что, er, причины.

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