Sentry-javascript: Convertir en modules ES

Créé le 14 nov. 2017  ·  3Commentaires  ·  Source: getsentry/sentry-javascript

Vous souhaitez demander une fonctionnalité ou signaler un bug ?

Caractéristique

Quel est le comportement actuel ?

La bibliothèque est exposée en tant que module CommonJS.

Quel est le comportement attendu ?

La bibliothèque est exposée en tant que module ES6.

Pourquoi est-ce que je veux ce comportement ?

Je veux seulement expédier la bibliothèque raven-js dans les premiers jours après la sortie d'une nouvelle fonctionnalité. Après cela, je souhaite me débarrasser de la bibliothèque raven-js de 20 Ko afin d'améliorer les performances de mon application.

Afin de supprimer la bibliothèque raven-js de 20 Ko, je souhaite utiliser la fonctionnalité Webpack "es6-tree-shaking/uglify-js-dead-code-removal".

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

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

Ceci n'est possible que lors de l'utilisation de modules ES6.

Avez-vous l'intention de passer aux modules es ? Accepteriez-vous un PR ?

Merci pour vos retours !

Help Wanted Improvement

Commentaire le plus utile

C'est définitivement quelque chose que je veux faire bientôt.
Cependant, cela nous obligerait très probablement à migrer vers webpack/rollup et à nous assurer que l'ensemble que nous fournissons ne dépasse toujours pas notre budget de 10 Ko.
Je ne peux pas dire quand il sera expédié, car il y a d'autres choses sur lesquelles je travaille également en ce moment.

Tous les 3 commentaires

Je pourrais ajouter une amélioration à la solution proposée :

Si le code source utilise des importations et des exportations es6, il est possible d'utiliser la clé module dans le package.json pour référencer le point d'entrée principal es6 du package { "module": "src/raven.js" } . Voir : https://github.com/rollup/rollup/wiki/pkg.module

De cette façon, la clé main peut toujours référencer une version groupée compatible CommonJS du package { "main": "dist/raven.js" } mais les personnes qui utilisent des outils comme webpack ou rollup peuvent les importer de la manière habituelle import Raven from 'raven-js' qui est automatiquement résolu à la version ES6 du fichier.

C'est définitivement quelque chose que je veux faire bientôt.
Cependant, cela nous obligerait très probablement à migrer vers webpack/rollup et à nous assurer que l'ensemble que nous fournissons ne dépasse toujours pas notre budget de 10 Ko.
Je ne peux pas dire quand il sera expédié, car il y a d'autres choses sur lesquelles je travaille également en ce moment.

@kamilogorek J'ai toujours voulu faire une configuration de build avec rollup.js. J'ai donc pris du temps et j'ai changé la version de Browserify à Rollup with Babel : #1152

C'est la première étape nécessaire pour convertir la source en modules ES.

Ce serait cool si vous pouviez revoir ce PR. :octocat:

Cette page vous a été utile?
0 / 5 - 0 notes