Sentry-javascript: Converter para módulos ES

Criado em 14 nov. 2017  ·  3Comentários  ·  Fonte: getsentry/sentry-javascript

Você quer solicitar um recurso ou relatar um bug ?

Recurso

Qual é o comportamento atual?

A biblioteca é exposta como um módulo CommonJS.

Qual é o comportamento esperado?

A biblioteca é exposta como módulo ES6.

Por que eu quero esse comportamento?

Eu só quero enviar a biblioteca raven-js nos primeiros dias após o lançamento de um novo recurso. Depois disso, quero me livrar da biblioteca raven-js de 20 KB para melhorar o desempenho do meu aplicativo.

A fim de remover a biblioteca raven-js de 20 KB, quero usar o recurso "es6-tree-shake / uglify-js-dead-code-remoção" do webpack.

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

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

Isso só é possível ao usar módulos ES6.

Algum plano de conversão para módulos ES? Você aceitaria um PR?

Obrigado pelo seu feedback!

Help Wanted Improvement

Comentários muito úteis

Definitivamente, é algo que quero fazer em breve.
No entanto, isso provavelmente exigiria que migrássemos para webpack / rollup e nos certificássemos de que o pacote que fornecemos ainda não exceda nosso orçamento de 10kb.
Não posso dizer quando será enviado, pois há outras coisas nas quais estou trabalhando agora.

Todos 3 comentários

Posso adicionar uma melhoria à solução proposta:

Se o código-fonte estiver usando importações e exportações es6, é possível usar a chave module em package.json para fazer referência ao ponto de entrada principal es6 do pacote { "module": "src/raven.js" } . Veja: https://github.com/rollup/rollup/wiki/pkg.module

Dessa forma, a chave main ainda pode fazer referência a uma versão empacotada compatível com CommonJS do pacote { "main": "dist/raven.js" } mas as pessoas que estão usando ferramentas como webpack ou rollup podem importá-los da maneira usual import Raven from 'raven-js' que é resolvido automaticamente para a versão ES6 do arquivo.

Definitivamente, é algo que quero fazer em breve.
No entanto, isso provavelmente exigiria que migrássemos para webpack / rollup e nos certificássemos de que o pacote que fornecemos ainda não exceda nosso orçamento de 10kb.
Não posso dizer quando será enviado, pois há outras coisas nas quais estou trabalhando agora.

@kamilogorek Eu sempre quis fazer uma configuração de compilação com rollup.js. Então, eu demorei e mudei a compilação de Browserify para Rollup com Babel: # 1152

Esta é a primeira etapa necessária para converter a fonte em módulos ES.

Seria legal se você pudesse revisar este PR. : octocat:

Esta página foi útil?
0 / 5 - 0 avaliações