JavaScript · Avançado · Inglês · Técnico
tree shaking
Otimização do bundler que remove do pacote final os exports de módulos ES que nunca são importados. Depende da análise estática de import e export.
Onde usar
Aparece ao reduzir o tamanho do bundle. Em code review, pacotes CommonJS e arquivos com efeito colateral no topo atrapalham, e o campo sideEffects do package.json ajuda o bundler a descartar arquivos.
Em código
// util.js
export const a = () => 'usado';
export const b = () => 'morto';
// app.js
import { a } from './util.js';
console.log(a()); // b sai do bundleExemplos
Tree shaking removed the functions we never imported.
O tree shaking removeu as funções que nunca importamos.
Importing from a CommonJS library blocks tree shaking.
Importar de uma biblioteca CommonJS bloqueia o tree shaking.
Cuidado
Esperar que funcione com require ou com módulos que têm efeitos colaterais no topo do arquivo.
Sinônimos
eliminação de código morto
Origem
Do inglês, sacudir a árvore de dependências para cair o que está morto.