2016-11-18 52 views
1

我正在使用windows.onerror登錄我們的JavaScript錯誤生產。我正在使用webpack捆綁我們的javascript並使用uglify插件來縮小。不幸的是,ErrorEvent對象的linenocolumno來自webpack生成的縮小塊。 Webpack正在生成其默認源映射文件。無論如何得到正確的linenocolumnoWebpack&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

使用的WebPack的`devtool'設置添加源地圖:

{ 
    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)。沒有'module'部分的'cheap-source-map'是webpack開始丟棄真正有用的數據的時候。 – ssube

0

有很多可能的問題。

最常見的是,uglify現在需要一個明確的sourcemap: true或它會打破你的源地圖生成。現在默認是false,因爲呃原因。