在生产代码中记录最小的JavaScript错误

时间:2018-10-22 11:02:23

标签: javascript reactjs webpack

我正在Intranet上运行带有React JS前端的后端应用程序。我不想使用Sentry或Rollbar之类的服务来跟踪生产中的最小化代码,因为我不想在外部上传我们的源地图。

是否有用于跟踪和记录JS源映射中的错误的自托管解决方案?

1 个答案:

答案 0 :(得分:0)

我们正在使用JSNLogStacktrace的组合。这就是index.html的<head>中的内容:

<script src="~/js/jsnlog.min.js"></script>
<script src="~/js/stacktrace.min.js"></script>
<script src="~/js/stacktraceConfig.js"></script>

stacktraceConfig.js 的内容下方:

window.onerror = function (msg, file, line, col, error) {
    var callback = function (stackframes) {
        var stringifiedStack = stackframes.map(function (sf) {
            return sf.toString();
        }).join('\n');
        JL('serverLog').fatalException({
            msg: 'Exception! ' + stringifiedStack,
            1: '--------------------------------------------------------------',
            errorMsg: msg,
            url: stackframes[0].fileName + ":" + stackframes[0].lineNumber,
            functionName: stackframes[0].functionName,
            lineNumber: stackframes[0].lineNumber,
            column: stackframes[0].column,
            x: '--------------------------------------------------------------',
        }, error);
    };
    var errback = function (err) { console.log(err.message); };

    StackTrace.fromError(error).then(callback).catch(errback);

    // Tell browser to run its own error handler as well
    return false;
};

您必须自己配置JSNLog,以使其通过邮件发送错误。