Você pode não precisar do Svelte para reduzir seu JavaScript

Atualmente, a opinião popular é que os atuais frameworks Javascript são proibitivamente grandes, e o novo framework Svelte é muito compacto. Portanto, todos precisam mudar para ele, e o problema do tamanho do Javasctipt será resolvido por si só.


Recentemente, houve um artigo "O Svelte é uma boa opção para implementar um widget?" com experiência na implementação de um projeto com um tamanho de pacote crítico. Esse é um ótimo motivo para verificar as promessas dos gerentes de Svelte PR em um projeto real.


Vamos analisar!


Dados iniciais


O projeto em questão é um widget incorporado distribuído como um pacote Javascript monolítico com um tamanho total de 71 Kb (incluindo gzip). É muito ou pouco? O artigo "Preço do JavaScript em 2019" recomendou evitar pacotes maiores que 50-100 Kb. Ou seja, o projeto atual está na zona amarela, o tamanho ainda é aceitável, mas é hora de pensar em como adicionar novas funcionalidades a ele e, ao mesmo tempo, ajustar-se ao limite superior de 100 Kb.


Agora baixe esse script, formate-o e veja o que há de interessante nele.


Configurações do empacotador


A primeira coisa que chama sua atenção ao visualizar o código é a repetição desse padrão:


function (t, e, n) {
    t.exports = {
        // - 
    }
}

CommonJS . ES-, – Scope hoisting Tree-shaking. CommonJS-, .


, ES- , . webpack --display-optimization-bailout , .


" " Svelte, , .


, , , 20%, 14 .



, SVG JPG . , .


SVG. SVGO, -.


7 svg- 10 , , -, . SVGO 3 .


JPG. , 5927 , 183x72. , retina-. , . - https://squoosh.app/, . , , 7 .


, , SVGO , imagemin.



Javascript. ES6-, IE . – , ES6 7%. Internet Explorer, .


.


  • axios – http-. IE , Fetch API, , 4 .
  • process – process Node.js. webpack, process.env.NODE_ENV, process process.env. 1 .
  • sentry – . , 17 .
    • Sentry CDN. , , .
    • , CDN, . , Sentry. , CDN.

Code coverage


Code Coverage Chrome Devtools. , 24% Javascript . , , , , , .



, 46 ( 2 !)


  • 14 –
  • 10 –
  • 22 – Javascript-

Assim, vemos que o tamanho do pacote é influenciado por muitos fatores, e o efeito de usar o Svelte sobre o mesmo que beber um hambúrguer com cola diet é puramente psicológico. A otimização real requer atenção aos detalhes e controle do tamanho da saída.


E se você estiver pensando em mudar para o Svelte com o objetivo de reduzir o tamanho do seu projeto, aconselho que você preste atenção nos pontos acima, talvez se você os consertar, não precisará ir a lugar algum.


All Articles