Sentry-javascript: In ES-Module konvertieren

Erstellt am 14. Nov. 2017  ·  3Kommentare  ·  Quelle: getsentry/sentry-javascript

Möchten Sie eine Funktion anfordern oder einen Fehler melden?

Besonderheit

Wie ist das aktuelle Verhalten?

Die Bibliothek wird als CommonJS-Modul bereitgestellt.

Was ist das erwartete Verhalten?

Die Bibliothek wird als ES6-Modul bereitgestellt.

Warum will ich dieses Verhalten?

Ich möchte die raven-js-Bibliothek nur in den ersten Tagen nach der Veröffentlichung eines neuen Features ausliefern. Danach möchte ich die 20KB raven-js-Bibliothek loswerden, um die Leistung meiner App zu verbessern.

Um die 20KB raven-js-Bibliothek zu entfernen, möchte ich das Webpack-Feature "es6-tree-shaking/uglify-js-dead-code-removal" verwenden.

import { Raven, RavenVue } from './es6/raven';

if (FLAGS.SENTRY_ENABLE) {
    Raven.config(CONFIG.SENTRY_DSN).addPlugin(RavenVue, Vue).install();
}

Dies ist nur bei Verwendung von ES6-Modulen möglich.

Gibt es Pläne zur Umstellung auf es-Module? Würden Sie eine PR akzeptieren?

Danke für Ihr Feedback!

Help Wanted Improvement

Hilfreichster Kommentar

Es ist definitiv etwas, das ich bald tun möchte.
Es würde jedoch wahrscheinlich erfordern, dass wir zu Webpack/Rollup migrieren und sicherstellen, dass das von uns bereitgestellte Bundle unser 10-KB-Budget immer noch nicht überschreitet.
Wann es ausgeliefert wird, kann ich allerdings noch nicht sagen, da ich gerade auch an anderen Dingen arbeite.

Alle 3 Kommentare

Ich könnte der vorgeschlagenen Lösung eine Verbesserung hinzufügen:

Wenn der Quellcode es6-Importe und -Exporte verwendet, ist es möglich, den module Schlüssel in package.json zu verwenden, um auf den es6-Haupteinstiegspunkt des Pakets { "module": "src/raven.js" } verweisen. Siehe: https://github.com/rollup/rollup/wiki/pkg.module

Auf diese Weise kann der Schlüssel main immer noch auf eine gebündelte, CommonJS-kompatible Version des Pakets { "main": "dist/raven.js" } verweisen, aber Benutzer, die Tools wie Webpack oder Rollup verwenden, können sie auf die übliche Weise importieren import Raven from 'raven-js' das automatisch in die ES6-Version der Datei aufgelöst wird.

Es ist definitiv etwas, das ich bald tun möchte.
Es würde jedoch wahrscheinlich erfordern, dass wir zu Webpack/Rollup migrieren und sicherstellen, dass das von uns bereitgestellte Bundle unser 10-KB-Budget immer noch nicht überschreitet.
Wann es ausgeliefert wird, kann ich allerdings noch nicht sagen, da ich gerade auch an anderen Dingen arbeite.

@kamilogorek Ich wollte schon immer ein Build-Setup mit rollup.js machen. Also habe ich mir etwas Zeit genommen und den Build von Browserify auf Rollup with Babel geändert: #1152

Dies ist der erste Schritt, der erforderlich ist, um die Quelle in ES-Module zu konvertieren.

Wäre cool, wenn du diese PR rezensieren könntest. :Oktokatze:

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen