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