8 Repos
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 ist eine Suite von Hilfsprogrammen für Webpack-Projekte, die für Bundle-Analyse, Tree-Shaking-Audits, Debugging von Build-Fehlern und Simulation der Netzwerkleistung konzipiert ist. Sie bietet ein browserbasiertes Dashboard zur Visualisierung von Asset-Verteilungen und zur Überwachung der Gesamtgröße von Bundles und Chunks. Das Projekt enthält einen Netzwerkleistungssimulator, der schätzt, wie Assets über verschiedene Verbindungstypen und Geschwindigkeiten hinweg geladen werden. Es bietet zudem ein Tree-Shaking-Analysetool, das das Verhältnis von shakeable zu nicht-shakeable Modulimporten misst, um Möglichkeiten zur Reduzierung der Bundle-Größe zu identifizieren. Zusätzliche Funktionen decken die Fehlerbehebung bei Build-Fehlern ab, indem rohe Kompilierungsfehler für die Lesbarkeit formatiert und integrierte Links zu externen Suchmaschinen bereitgestellt werden. Das Toolset analysiert zudem statische Assets, um Chunk-Verteilungen zu berechnen und Modulimporttypen zu bewerten.
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.