8 repositorios
Techniques for reducing bundle size by removing unused code.
Distinguishing note: Focuses on build-time code elimination via named exports.
Explore 8 awesome GitHub repositories matching web development · Tree-Shaking Optimizations. Refine with filters or upvote what's useful.
Preact is a lightweight declarative user interface library designed for building high-performance web applications. It utilizes a component-based architecture where interfaces are defined as functional or class-based units, relying on a virtual DOM to perform efficient state reconciliation and updates. By prioritizing a minimal footprint, the library enables developers to create modular, predictable, and testable user interfaces while maintaining compatibility with standard browser APIs. The library distinguishes itself through a reactive state engine that leverages signals to track dependenc
Enables tree-shaking by using named exports to reduce final bundle size.
date-fns is a JavaScript date utility library providing a collection of pure functions for manipulating, formatting, and calculating dates and times. It serves as an immutable date manipulation library and a tool for time zone management, ensuring that date transformations are performed without modifying the original date objects. The library functions as a date formatting tool that converts date objects into human-readable strings using custom patterns and international locales. It includes a specific toolset for adjusting and calculating date representations across different geographical re
Organizes utilities into individual files to enable build tools to remove unused code from the final bundle.
Rollup is an ES module bundler and JavaScript module transpiler. It functions as a build tool that combines JavaScript modules into optimized files and converts modern JavaScript and JSX into various output formats for different runtime environments. The project is distinguished by its static-analysis tree shaking engine, which removes unused code and dead exports to minimize bundle size. It also acts as a code splitting orchestrator, partitioning modules into separate chunks to optimize network requests and load times. The tool provides a hook-based plugin system for extending build logic,
Uses a static-analysis engine to remove unused exports and dead code to minimize bundle size.
Rolldown is a high-performance JavaScript and TypeScript module bundler written in Rust. It functions as a fast module compiler that implements a Rollup-compatible API to ensure compatibility with existing workflows and plugins while specializing in ECMAScript Module formats. The project distinguishes itself by using a Rust-based core engine and lazy compilation to reduce the time spent resolving and transforming source code. It focuses on minimizing final delivery sizes through static analysis and tree-shaking to remove unused code. The toolset covers a broad range of build capabilities, in
Eliminates dead code by analyzing the module graph to remove unused exports and side-effect-free calls.
size-limit is a set of specialized tools for measuring JavaScript bundle sizes and enforcing performance budgets within continuous integration pipelines. It functions as a bundle size monitor and budget enforcer that can reject pull requests when JavaScript bundles exceed predefined size thresholds. The project distinguishes itself by providing a browser-based execution profiler that calculates the time required to compile and execute JavaScript on simulated low-end hardware. It also includes a tree-shaking validator that analyzes partial import bundle sizes to verify that unused code is corr
Tests final bundle sizes using partial imports to verify that the bundler correctly removes unused code.
Jarvis es una suite de utilidades para proyectos Webpack diseñada para el análisis de bundles, auditorías de tree-shaking, depuración de errores de compilación y simulación de rendimiento de red. Proporciona un panel de control basado en navegador para visualizar distribuciones de activos y monitorear el tamaño total de bundles y chunks. El proyecto incluye un simulador de rendimiento de red que estima cómo se cargan los activos a través de varios tipos de conexión y velocidades. Cuenta además con una herramienta de análisis de tree-shaking que mide la proporción de importaciones de módulos que se pueden eliminar frente a las que no, para identificar oportunidades de reducción del tamaño del bundle. Las capacidades adicionales cubren la resolución de problemas de errores de compilación formateando errores de compilación sin procesar para facilitar la lectura y proporcionando enlaces integrados a motores de búsqueda externos. El conjunto de herramientas también analiza activos estáticos para calcular distribuciones de chunks y evaluar tipos de importación de módulos.
Measures the ratio of shakeable to non-shakeable module imports to optimize bundle size.
esm.sh is a proxy-based registry and distribution system for buildless web development. It retrieves packages from external registries and serves them as ES modules directly to the browser, eliminating the need for a local build step. The project transforms TypeScript, JSX, TSX, and Vue files into browser-compatible JavaScript on the fly during the request process. It handles Node.js built-in resolution by mapping internal modules to browser-compatible polyfills and manages dependency versioning and aliasing through URL query parameters. The system optimizes delivery via request-time tree sh
Removes unused exports from modules to optimize bundle size and reduce the payload sent to the browser.
TeaVM is a Java bytecode transpiler and browser-based JVM runtime that converts compiled Java class files into JavaScript or WebAssembly. It functions as a compiler and build pipeline tool that enables applications written in various JVM languages to execute natively within a web browser. The project distinguishes itself by transforming bytecode directly into optimized web formats without requiring the original source code. It includes a WebAssembly bytecode compiler for high-performance execution and a specialized emulation system to handle asynchronous multithreading within the single-threa
Removes unreachable code and unused classes by analyzing the call graph to minimize the final output size.