update
This commit is contained in:
277
html/nodeesm.html
Normal file
277
html/nodeesm.html
Normal file
@@ -0,0 +1,277 @@
|
||||
<h1 id="awesome-node-esm">Awesome Node ESM</h1>
|
||||
<p><a href="https://awesome.re"><img
|
||||
src="https://awesome.re/badge-flat.svg" alt="Awesome" /></a></p>
|
||||
<p>A curated list of Node.js modules with native ESM support and
|
||||
resources about ES Modules in Node.js.</p>
|
||||
<h2 id="contents">Contents</h2>
|
||||
<ul>
|
||||
<li><a href="#articles">Articles</a></li>
|
||||
<li><a href="#tools">Tools</a></li>
|
||||
<li><a href="#packages">Packages</a>
|
||||
<ul>
|
||||
<li><a href="#web-frameworks">Web frameworks</a></li>
|
||||
<li><a href="#http">HTTP</a></li>
|
||||
<li><a href="#websocket">WebSocket</a></li>
|
||||
<li><a href="#template-engines">Template engines</a></li>
|
||||
<li><a href="#ssr">SSR</a></li>
|
||||
<li><a href="#databases">Databases</a></li>
|
||||
<li><a href="#logging">Logging</a></li>
|
||||
<li><a href="#testing">Testing</a></li>
|
||||
<li><a href="#cli">CLI</a></li>
|
||||
<li><a href="#date">Date</a></li>
|
||||
<li><a href="#file-system">File system</a></li>
|
||||
<li><a href="#utility">Utility</a> (value manipulations)</li>
|
||||
<li><a href="#random">Random</a></li>
|
||||
<li><a href="#parsing">Parsing</a></li>
|
||||
<li><a href="#compression">Compression</a></li>
|
||||
<li><a href="#performance">Performance</a></li>
|
||||
<li><a href="#ast">AST</a></li>
|
||||
<li><a href="#functional-programming">Functional programming</a></li>
|
||||
<li><a href="#math">Math</a></li>
|
||||
<li><a href="#ethereum">Ethereum</a></li>
|
||||
<li><a href="#other">Other</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h2 id="articles">Articles</h2>
|
||||
<ul>
|
||||
<li><a href="https://nodejs.org/api/esm.html">ECMAScript Modules Node.js
|
||||
docs</a></li>
|
||||
<li><a href="https://byteofdev.com/posts/how-to-use-esm/">How to Use ESM
|
||||
on the Web and Node.js</a></li>
|
||||
<li><a href="https://2ality.com/2017/09/native-esm-node.html">Using ES
|
||||
modules natively in Node.js</a></li>
|
||||
<li><a href="https://blog.logrocket.com/es-modules-in-node-today">ES
|
||||
Modules in Node today</a></li>
|
||||
<li><a
|
||||
href="https://kentcdodds.com/blog/super-simple-start-to-es-modules-in-node-js/">Super
|
||||
Simple Start to ESModules in Node.js</a></li>
|
||||
</ul>
|
||||
<h2 id="tools">Tools</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/evanw/esbuild">esbuild</a> - an
|
||||
extremely fast JavaScript bundler and minifier.</li>
|
||||
<li><a href="https://github.com/egoist/tsup">tsup</a> - bundle your
|
||||
TypeScript library with no config, powered by esbuild.</li>
|
||||
<li><a href="https://github.com/rollup/rollup">rollup</a> -
|
||||
next-generation ES Module bundler.</li>
|
||||
<li><a href="https://github.com/ai/dual-publish">dual-publish</a> -
|
||||
publish JS project as dual ES modules and CommonJS package to npm</li>
|
||||
<li><a href="https://github.com/wessberg/cjstoesm">cjstoesm</a> - tool
|
||||
that can transform CommonJS to ESM</li>
|
||||
<li><a
|
||||
href="https://github.com/antfu/esbuild-node-loader">esbuild-node-loader</a>
|
||||
- transpile TypeScript to ESM with Node.js loader.</li>
|
||||
<li><a href="https://github.com/lukeed/tsm">tsm</a> - TypeScript Module
|
||||
Loader</li>
|
||||
</ul>
|
||||
<h2 id="packages">Packages</h2>
|
||||
<h3 id="web-frameworks">Web frameworks</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/talentlessguy/tinyhttp">tinyhttp</a> -
|
||||
tiny web framework as a replacement of Express.</li>
|
||||
<li><a href="https://github.com/lukeed/polka">polka</a> (alpha only) -
|
||||
micro web server so fast, it’ll make you dance!</li>
|
||||
<li><a href="https://github.com/koajs/koa">koa</a> - expressive
|
||||
middleware for node.js using ES2017 async functions</li>
|
||||
</ul>
|
||||
<h3 id="http">HTTP</h3>
|
||||
<h4 id="http-clients">HTTP Clients</h4>
|
||||
<ul>
|
||||
<li><a href="https://github.com/node-fetch/node-fetch">node-fetch</a> -
|
||||
light-weight module that brings window.fetch to Node.js</li>
|
||||
<li><a href="https://github.com/lukeed/httpie">httpie</a> - a Node.js
|
||||
HTTP client as easy as pie!</li>
|
||||
</ul>
|
||||
<h4 id="api-clients">API Clients</h4>
|
||||
<ul>
|
||||
<li><a href="https://github.com/wopian/kitsu">kitsu</a> - simple,
|
||||
lightweight & framework agnostic JSON:API client</li>
|
||||
<li><a href="https://github.com/draftbit/twitter-lite">twitter-lite</a>
|
||||
- tiny, full-featured, flexible client / server library for the Twitter
|
||||
API</li>
|
||||
</ul>
|
||||
<h3 id="websocket">WebSocket</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/lukeed/sockette">sockette</a> - tiny
|
||||
wrapper around WebSocket that will automatically reconnect if the
|
||||
connection is lost!</li>
|
||||
</ul>
|
||||
<h3 id="middleware">Middleware</h3>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://github.com/talentlessguy/milliparsec">milliparsec</a> -
|
||||
tiniest Node.js body parser ever</li>
|
||||
<li><a href="https://github.com/lukeed/sirv">sirv</a> - an optimized
|
||||
middleware & CLI application for serving static files~!</li>
|
||||
<li><a href="https://github.com/talentlessguy/tinyws">tinyws</a> - tiny
|
||||
WebSocket middleware for Node.js</li>
|
||||
<li><a href="https://github.com/tinyhttp/malibu">malibu</a> -
|
||||
framework-agnostic CSRF middleware for modern Node.js</li>
|
||||
<li><a href="https://github.com/tinyhttp/lru-send">lru-send</a> -
|
||||
LRU-based caching middleware for Node.js</li>
|
||||
</ul>
|
||||
<h3 id="template-engines">Template engines</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/eta-dev/eta">eta</a> - embedded JS
|
||||
template engine for Node, Deno, and the browser</li>
|
||||
<li><a href="https://github.com/lukeed/tempura">tempura</a> - A light,
|
||||
crispy, and delicious template engine</li>
|
||||
</ul>
|
||||
<h3 id="ssr">SSR</h3>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://github.com/preactjs/preact-render-to-string">preact-render-to-string</a>
|
||||
- universal rendering for Preact: render JSX and Preact components to
|
||||
HTML.</li>
|
||||
<li><a
|
||||
href="https://github.com/kriasoft/hyperapp-render">hyperapp-render</a> -
|
||||
render Hyperapp to an HTML string with SSR and Node.js streaming
|
||||
support.</li>
|
||||
<li><a href="https://github.com/talentlessguy/hypermdx">hypermdx</a> -
|
||||
Markdown enhanced with Hyperapp</li>
|
||||
<li><a href="https://github.com/talentlessguy/streamdown">streamdown</a>
|
||||
- stream markdown to HTML</li>
|
||||
</ul>
|
||||
<h3 id="databases">Databases</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/pubkey/rxdb">rxdb</a> - a realtime
|
||||
Database for JavaScript Applications.</li>
|
||||
</ul>
|
||||
<h3 id="logging">Logging</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/logtown/logtown">logtown</a> - simple
|
||||
Logging Facade for JavaScript.</li>
|
||||
<li><a href="https://gitlab.com/frissdiegurke/oddlog">oddlog</a> -
|
||||
high-performance payload focused logging library for node.js.</li>
|
||||
<li><a href="https://github.com/maraisr/diary">diary</a> -
|
||||
zero-dependency, fast logging library for both Node and Browser.</li>
|
||||
<li><a href="https://github.com/gajus/roarr">roarr</a> - JSON logger for
|
||||
Node.js and browser.</li>
|
||||
</ul>
|
||||
<h3 id="testing">Testing</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/lukeed/uvu">uvu</a> - an extremely fast
|
||||
and lightweight test runner for Node.js and the browser.</li>
|
||||
<li><a href="https://github.com/bearror/oletus">oletus</a> - minimal
|
||||
ECMAScript Module test runner</li>
|
||||
<li><a href="https://github.com/43081j/hanbi">hanbi</a> - a small
|
||||
javascript library for stubbing and spying on methods/functions.</li>
|
||||
<li><a href="https://github.com/griffinmyers/wirepig">wirepig</a> - mock
|
||||
HTTP and TCP dependencies with real sockets.</li>
|
||||
</ul>
|
||||
<h3 id="cli">CLI</h3>
|
||||
<h4 id="argument-parsing">Argument parsing</h4>
|
||||
<ul>
|
||||
<li><a href="https://github.com/yargs/yargs">yargs</a> - Command-line
|
||||
parser that automatically generates an elegant user-interface.</li>
|
||||
</ul>
|
||||
<h4 id="colors">Colors</h4>
|
||||
<ul>
|
||||
<li><a href="https://github.com/jorgebucaran/colorette">colorette</a> -
|
||||
color your terminal using pure idiomatic JavaScript.</li>
|
||||
<li><a href="https://github.com/lukeed/kleur">kleur</a> - the fastest
|
||||
Node.js library for formatting terminal text with ANSI colors~!</li>
|
||||
</ul>
|
||||
<h3 id="date">Date</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/iamkun/dayjs">dayjs</a> - 2KB immutable
|
||||
date library alternative to Moment.js with the same modern API</li>
|
||||
<li><a href="https://github.com/lukeed/tinydate">tinydate</a> - a tiny
|
||||
(349B) reusable date formatter.</li>
|
||||
<li><a href="https://github.com/masbagal/tempe">tempe</a> - Featherlight
|
||||
(< 2kB) helper for Javascript date formatting</li>
|
||||
<li><a href="https://github.com/xxczaki/light-date">light-date</a> -
|
||||
blazing fast & lightweight (157 bytes) date formatting for Node.js
|
||||
and the browser.</li>
|
||||
</ul>
|
||||
<h3 id="file-system">File system</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/bevry/istextorbinary">istextorbinary</a>
|
||||
- Check if a file is text or binary.</li>
|
||||
<li><a
|
||||
href="https://github.com/talentlessguy/tinyhttp/tree/master/packages/dotenv"><span
|
||||
class="citation"
|
||||
data-cites="tinyhttp/dotenv">@tinyhttp/dotenv</span></a> - A rewrite of
|
||||
<a href="https://github.com/motdotla/dotenv">dotenv</a> module.</li>
|
||||
</ul>
|
||||
<h3 id="utility">Utility</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/lukeed/dequal">dequal</a> - tiny (304B
|
||||
to 489B) utility to check for deep equality</li>
|
||||
<li><a href="https://github.com/lukeed/klona">klona</a> - tiny (240B to
|
||||
507B) and fast utility to “deep clone” Objects, Arrays, Dates, RegExps,
|
||||
and more!</li>
|
||||
<li><a href="https://github.com/developit/dlv">dlv</a> - Safe deep
|
||||
property access in 120 bytes. x = dlv(obj, ‘a.b.x’)</li>
|
||||
</ul>
|
||||
<h3 id="random">Random</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/lukeed/uuid">uuid</a> - tiny (230B),
|
||||
fast, and cryptographically secure UUID (V4) generator for Node and the
|
||||
browser</li>
|
||||
<li><a href="https://github.com/ai/nanoid">nanoid</a> - Tiny, secure,
|
||||
URL-friendly, unique string ID generator.</li>
|
||||
</ul>
|
||||
<h3 id="parsing">Parsing</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/developit/snarkdown">snarkdown</a> - a
|
||||
snarky 1kb Markdown parser written in JavaScript</li>
|
||||
</ul>
|
||||
<h3 id="compression">Compression</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/mikbry/anzip">anzip</a> - simple async
|
||||
unzip library for Node.js</li>
|
||||
</ul>
|
||||
<h3 id="performance">Performance</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/piscinajs/piscina">piscina</a> - a fast,
|
||||
efficient Node.js Worker Thread Pool implementation</li>
|
||||
<li><a href="https://github.com/ai/nanodelay">nanodelay</a> - a tiny (25
|
||||
bytes) Promise wrapper around setTimeout</li>
|
||||
</ul>
|
||||
<h3 id="ast">AST</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/acornjs/acorn">acorn</a> - a small,
|
||||
fast, JavaScript-based JavaScript parser</li>
|
||||
</ul>
|
||||
<h3 id="functional-programming">Functional programming</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/facebook/immutable-js">immutable</a> -
|
||||
Immutable data collections.</li>
|
||||
<li><a href="https://github.com/Ramda/ramda">ramda</a> - practical
|
||||
functional Javascript.</li>
|
||||
<li><a href="https://github.com/marvinhagemeister/smoldash">smoldash</a>
|
||||
- A tiny lodash alternative built for the modern web</li>
|
||||
<li><a href="https://github.com/YuriGor/deepdash">deepdash</a> - tree
|
||||
traversal library written in Underscore/Lodash fashion</li>
|
||||
</ul>
|
||||
<h3 id="math">Math</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/josdejong/mathjs">mathjs</a> - An
|
||||
extensive math library.</li>
|
||||
</ul>
|
||||
<h3 id="ethereum">Ethereum</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/talentlessguy/get-ens">get-ens</a> - Get
|
||||
text records of an ENS address</li>
|
||||
<li><a href="https://github.com/talentlessguy/send-tx">send-tx</a> -
|
||||
Sign & send Ethereum transactions</li>
|
||||
</ul>
|
||||
<h3 id="other">Other</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/Turfjs/turf">turf</a> - a modular
|
||||
geospatial engine written in JavaScript</li>
|
||||
<li><a href="https://github.com/xxczaki/cashify">cashify</a> -
|
||||
lightweight currency conversion library, successor of money.js</li>
|
||||
<li><a href="https://github.com/withastro/astro">astro</a> - build
|
||||
faster websites with the island architecture</li>
|
||||
<li><a
|
||||
href="https://github.com/sindresorhus/transliterate">transliterate</a> -
|
||||
convert Unicode characters to Latin characters using
|
||||
transliteration</li>
|
||||
<li><a href="https://github.com/sindresorhus/emittery">emittery</a> -
|
||||
simple and modern async event emitter.</li>
|
||||
</ul>
|
||||
<p><a
|
||||
href="https://github.com/talentlessguy/awesome-node-esm">nodeesm.md
|
||||
Github</a></p>
|
||||
Reference in New Issue
Block a user