0

Ich versuche die stackdriver-error-js library in mein Vue-Projekt als ein Modul zu integrieren."ReferenceError: StackTrace ist nicht definiert" in Vue App mit "stackdriver-errors-js"

den Code und die Setup:

in package.json

"stackdriver-errors-js": "^0.2.0" 

in bootstrap.js

import errorHandler from './error/error-reporting'; 

in fehler reporting.js

import { StackdriverErrorReporter } from 'stackdriver-errors-js'; 

let errorHandler; 

errorHandler = new StackdriverErrorReporter(); 
errorHandler.start({ 
    key: "{{.Config.StackDriverApiKey}}", 
    projectId: "{{.Config.StackDriverProject}}", 
    service: "{{.Config.GoogleCloudProjectID}}", 
    version: "{{.Copacknfig.GaeEnv}}", 
    disabled: false 
}); 

export default errorHandler; 

Der tatsächliche Fehler

Der Fehler, den ich jetzt habe ist (Konsolenausgabe und Test)

[vue-devtools] Ready. Detected Vue v2.4.2 
(function testErrorReporting() {window.onerror(null, null, null, null, new Error('Test: Something broke!'));})(); 

stackdriver-errors.js:109 Uncaught ReferenceError: StackTrace is not defined 
    at StackdriverErrorReporter.webpackJsonp.556.StackdriverErrorReporter.report (stackdriver-errors.js:109) 
    at window.onerror (stackdriver-errors.js:67) 
    at testErrorReporting (<anonymous>:1:40) 
    at <anonymous>:1:111 

und Leitung (Stackdriver-errors.js: 109)

...  
StackTrace.fromError(err).then(function(stack){ 
... 

Antwort

0

Wenn Sie das tun Laden Sie nicht die stackdriver-errors-concat.min.js Datei, Sie müssen auch manuell das Modul stacktrace-js.

stackdriver-errors erwartet, dass ein StackTrace-Objekt vorhanden ist.

+0

Ich erfasst https://github.com/GoogleCloudPlatform/stackdriver-errors-js/issues/26 – Steren

+0

danke, ich verstehe. Jetzt versuchen, das Modul importiert und funktioniert zu bekommen ... – jongep86

0

Da die Bibliothek, die Sie verwenden möchten, experimentell ist und daher nicht in einer Produktionsumgebung verwendet werden kann, wäre es besser, eine andere Bibliothek zu verwenden, die für die Produktion getestet und validiert wurde.

Ich empfehle die Verwendung dieser anderen library stattdessen, die Funktionen im Zusammenhang mit Stackdriver Fehlerberichterstattung für Node.js und JavaScript enthält.

Zunächst einmal installieren, die die Abhängigkeit von diesem Befehl ausführen:

npm install --save @google-cloud/error-reporting 

Dadurch wird die Abhängigkeit automatisch package.json hinzufügen.

In fehler reporting.js, können Sie die dependencyby, diese zu Ihrem Code (Alle Parameter sind optional) hinzufügen:

var errors = require('@google-cloud/error-reporting')({ 
    projectId: 'my-project-id', 
    keyFilename: '/path/to/keyfile.json', 
    credentials: require('./path/to/keyfile.json'), 
    // if true library will attempt to report errors to the service regardless 
    // of the value of NODE_ENV 
    // defaults to false 
    ignoreEnvironmentCheck: false, 
    // determines the logging level internal to the library; levels range 0-5 
    // where 0 indicates no logs should be reported and 5 indicates all logs 
    // should be reported 
    // defaults to 2 (warnings) 
    logLevel: 2, 
    // determines whether or not unhandled rejections are reported to the 
    // error-reporting console 
    reportUnhandledRejections: true, 
     serviceContext: { 
     service: 'my-service', 
     version: 'my-service-version' 
    } 
}); 

Danach, diesen Code verwenden, um zu testen, ob der Fehler ordnungsgemäß gemeldet von Stackdriver:

errors.report(new Error('Something broke!')); 

Bitte beachten sie, dass diese Bibliothek ist derzeit auf einem beta-Stadium, so könnte es einige Änderungen, um es in der Zukunft sein.

+2

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/18533362) – Goose

Verwandte Themen