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!
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:
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.