# esm-dev/esm.sh

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/esm-dev-esm-sh).**

4,035 stars · 201 forks · Go · mit

## Links

- GitHub: https://github.com/esm-dev/esm.sh
- Homepage: https://esm.sh
- awesome-repositories: https://awesome-repositories.com/repository/esm-dev-esm-sh.md

## Topics

`cdn` `esm` `nobuild` `web-development`

## Description

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 shaking to remove unused code and can bundle a module with its external dependencies into a single file. Additionally, it provides mechanisms for bootstrapping and executing JavaScript modules within a web worker context.

## Tags

### Networking & Communication

- [ES Module Registry Proxies](https://awesome-repositories.com/f/networking-communication/traffic-proxying/proxy-traffic-management/es-module-registry-proxies.md) — Acts as a proxy-based registry that retrieves packages from external sources and serves them as ES modules.

### Programming Languages & Runtimes

- [On-the-Fly Module Transpilers](https://awesome-repositories.com/f/programming-languages-runtimes/on-the-fly-module-transpilers.md) — Converts TypeScript, Vue, and Svelte files into browser-compatible JavaScript modules on the fly during the request process. ([source](https://cdn.jsdelivr.net/gh/esm-dev/esm.sh@main/README.md))
- [HTTP Module Distribution](https://awesome-repositories.com/f/programming-languages-runtimes/http-module-distribution.md) — Serves JavaScript modules from external registries as URLs to enable browser-side loading. ([source](https://esm.sh/monaco-editor/esm/vs/editor/editor.worker))
- [Just-In-Time Module Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/just-in-time-module-compilation.md) — Compiles TypeScript and Vue files into browser-compatible JavaScript on the fly during the request process.
- [TypeScript Execution](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/interoperability/typescript-execution.md) — Provides native execution of TypeScript, JSX, and TSX by compiling them on the fly.
- [Node.js Core Shims](https://awesome-repositories.com/f/programming-languages-runtimes/node-js-core-shims.md) — Maps Node.js built-in modules to compatible versions for use in browser environments.
- [NPM Module Compatibility](https://awesome-repositories.com/f/programming-languages-runtimes/npm-module-compatibility.md) — Imports and resolves NPM packages as ES modules via URLs for use in web applications.
- [In-Browser Script Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/in-browser-script-compilers.md) — Compiles TypeScript, JSX, and TSX code written inside HTML script tags for immediate browser execution. ([source](https://cdn.jsdelivr.net/gh/esm-dev/esm.sh@main/README.md))
- [Web Worker Execution](https://awesome-repositories.com/f/programming-languages-runtimes/web-worker-execution.md) — Wraps module code with a custom loader to execute JavaScript within a web worker context.

### Development Tools & Productivity

- [Query-Based Resolution](https://awesome-repositories.com/f/development-tools-productivity/url-dependencies/query-based-resolution.md) — Determines module versions and aliases by parsing query parameters within the request URL.
- [Dependency Bundling](https://awesome-repositories.com/f/development-tools-productivity/third-party-integrations/dependency-bundling.md) — Packages a module and its external dependencies into a single JavaScript file to reduce network requests. ([source](https://cdn.jsdelivr.net/gh/esm-dev/esm.sh@main/README.md))

### DevOps & Infrastructure

- [Dependency Aliasing](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/resolution-mapping-systems/dependency-aliasing.md) — Provides control over module versions and aliases using URL query parameters. ([source](https://esm.sh/))

### Web Development

- [Buildless](https://awesome-repositories.com/f/web-development/buildless.md) — Enables loading JavaScript modules from registries directly in the browser to eliminate the need for a local build step.
- [Node.js Browser Emulation](https://awesome-repositories.com/f/web-development/node-js-browser-emulation.md) — Provides mechanisms to execute Node.js core modules within web browsers via compatible polyfills.
- [Bundle Optimizers](https://awesome-repositories.com/f/web-development/bundle-optimizers.md) — Reduces the amount of code sent to the browser through request-time tree shaking and dependency bundling.
- [Tree-Shaking Optimizations](https://awesome-repositories.com/f/web-development/tree-shaking-optimizations.md) — Removes unused exports from modules to optimize bundle size and reduce the payload sent to the browser. ([source](https://cdn.jsdelivr.net/gh/esm-dev/esm.sh@main/README.md))
- [Tree-Shaking Optimizers](https://awesome-repositories.com/f/web-development/tree-shaking-optimizers.md) — Analyzes module exports during the fetch process to remove unused code and reduce payload size.
