Tree Shaking: como reduzir o tamanho das suas aplicações na prática

Mesmo com todas as ferramentas e técnicas existentes é comum ver aplicações, especialmente SPA, demorando para carregar e com o seu tamanho como gargalo.

Sabemos que uma SPA é um punhado de html, css e js, minificado e otimizado para ser pequeno proporcionando um carregamento rápido e uma única vez.

Estou falando do Tree Shaking. 마지막으로 Tree Shaking?

Tree Shaking é uma técnica utilizada para remover código morto/não utilizado no momento do build da aplicação, porporcionando, as vezes, uma redução drástica no tamanho da aplicação.

세부 정보:



Tree shaking

컴퓨팅에서 트리 쉐이킹은 Dart, JavaScript 또는 TypeScript와 같은 ECMAScript 방언으로 작성된 코드를 웹 브라우저에서 로드되는 단일 번들로 최적화할 때 적용되는 데드 코드 제거 기술입니다. 축소기에 일반적으로 사용되는 기존의 단일 라이브러리 데드 코드 제거 기술과 종종 대조되는 트리 쉐이킹은 진입점에서 시작하고 실행할 수 있는 기능만 포함하여 번들 전체에서 사용되지 않는 기능을 제거합니다. 간결하게 "라이브 코드 포함"으로 설명됩니다.


View on Wikipedia



O Webpack e o Rollup contam com essa feature nativamente, então por que ainda assim se preocupar com isso?

Pois nem semper o Tree Shaking é possível! Um contexto se faz necessário para que isso seja possível. lib ou o 패키지 que está sendo importado precisa ser exportado como ECMAScript6 nos possibilita. CommonJS의 다른 점은 이전 버전에서 쉽게 식별할 수 있고 쉽게 사용할 수 있는 코드를 제거할 수 있다는 것입니다.

나무가 흔들리는 곳에서 무엇을 할 수 있습니까?

Com o Vue-CLI 설치 vamos criar uma nova aplicação:

vue create tree-shaking && cd tree-shaking && yarn build


Depois do build podemos ver que 83KB são de libs e packages instalados.


설치하기 전에 설치하거나 앱을 설치하지 않음

yarn add lodash

더 읽어보기 ao nosso arquivo main.js




즉시 건축을 위한 광장:




yarn build


71.77KB 더!



Sem ao menos usar alguma das mais de 200 funções que o Lodash nos fornece.



Vamos tornar as coisas um pouco mais interessantes, pegando apenas a função.flatten




<script id="gist-ltag"src="https://gist.github.com/murilolopes/22669a14c9cf624228cf23a55ff3c1d5.js"/>



1.92KB 증가



Agora que vimos acontecendo na prática vamos entender o que se passa. 전체 빌드(전체 빌드)를 설치하려면 수입 문서'lodash'를 가져오십시오. Se optar por 'lodash/core' trará apenas o principal(core) além de outras opções para retornar apenas uma categoria de funções como é o caso do'lodash/array'




Lodash의 수입 옵션



이것은 수출과 수출을 위한 것입니다. Na opção de full build(pacote completo) é exportado em um objeto, todas as funções, já na categoria de array, traz apenas funções relacionadas a arrays.



Tree Shaking é uma tecnica simples mas subestimada! Acredito fortemente que toda escolha de lib ou framework deve ser levado em Consideração se o mesmo fornece alguma opção de Tree Shaking.



Uso oVuetify는 Tree Shaking을 증명하기 위해 필요한 형식으로 제공됩니다. 사용에 관심이 있으세요!



Então é isso, espero ter ajudado de alguma forma e se não concordou com algo dito aqui ou até mesmo errei, please, fix me! Obrigado pela atenção e até a próxima!!!

좋은 웹페이지 즐겨찾기