- Reduce database store structure
- Fix missed
renderToReadableStream
export ofreact/server
in deno - Fix
fetchPackageInfo
dead loop (close #301) - Upgrade esbuild to 0.14.36
- Use the latest version of
deno/std/node
fromcdn.deno.land
automatically - Add
es2022
target - Upgrade esbuild to 0.14.34
- Fix
?deps
mode
- Fix types build version ignore
?pin
(close #292) - Infect
?deps
and?alias
to dependencies (close #235) - Bundle
?worker
by default - Upgrade semver to v3 (close #297)
- Upgrade esbuild to 0.14.31
- Upgrade deno std to 0.133.0 (close #298)
- Support
?no-require
flag, with this option you can ignore therequire(...)
call in ESM packages. To support logic like below:// index.mjs let depMod; try { depMod = await import("/path") } finally { // `?no-require` will skip next line when resolving depMod = require("/path") }
- Fix types dependency path (close #287)
- Support
jsx-runtime
with query:https://esm.sh/react?pin=v72/jsx-runtime
->https://esm.sh/react/jsx-runtime?pin=v72
- Support pure types package (close #284)
- Fix version resolving of dts transformer (close #274)
- Return
bare
code whentarget
andpin
provided to reduce requests// https://esm.sh/react@17.0.2 export * from "https://cdn.esm.sh/v69/react@17.0.2/es2021/react.js";
// https://esm.sh/react@17.0.2?target=es2020&pin=v70 {content just from https://cdn.esm.sh/v69/react@17.0.2/es2021/react.js}
- Rollback
parseCJSModuleExports
function to v68 (close #277, #279) - Fix
exports
resolving in package.json (close #278, #280) - Upgrade deno
std/node
to 0.130.0
- Force the dependency version of react equals to react-dom's version
before: react-dom@18-rc.2 -> react@18-rc.2-next.xxxx now: react-dom@18-rc.2 -> react@18-rc.2
- Fix version check for prerelease (can't resolve
react
inreact-dom@rc
) - Improve cjs module transform (can handle more edge cases, for example react-18-rc defines non-esm for browsers and deno)
- Fix
bundle
mode (close #271) - Support
jsnext:main
in package.json (close #272) - Improve
cjs-esm-exports
to supportUMD
format// exports: ['foo'] const { exports } = parse('index.cjs', ` (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (factory((global.MMDParser = global.MMDParser || {}))); }(this, function (exports) { exports.foo = "bar"; })) `);
- Upgrade deno node polyfill to 0.128.0
- Force
react/jsx-dev-runtime
andreact-refresh
into dev mode - Replace
typeof window !== undefined
totypeof document !== undefined
fordeno
target - Replace
object-assign
withObject.assign
- Upgrade
esbuild
to 0.14.25
- Improve
exports
resloving ofpackage.json
(close #179)
- Feature: Support
?path
query to specify thesubmodule
, this is friendly for import maps with options (close #260)// import-map.json { imports: { "react-dom/": "https://esm.sh/react-dom?target=es2015&path=/" } }
// equals to https://esm.sh/react-dom/server?target=es2015 import { renderToString } from "react-dom/server"
- Upgrade
deno.land/std/node
polyfill to 0.125.0 - Upgrade
esbuild
to v0.14.18 - bugfixs for #251, #256, #261,#262
- Fix Node.js
process
compatibility (close #253) - Upgrade
deno.land/std/node
polyfill to 0.122.0
- Add fs polyfill(fake) for browsers (close #250)
- Upgrade
deno.land/std/node
polyfill to 0.121.0
- Support React new JSX transforms in Deno(1.16+) (close #225)
- improve
cjs-esm-exports
to support some edge cases:var foo = exports.foo || (exports.foo = {}); ((bar) => { ... })(exports.bar || (exports.bar = {}));
- Fix
@types
verisoning:marked
->@types/marked@4.0.1
marked@2
->@types/marked@2.0.5
marked?dep=@types/marked@4.0.0
->@types/marked@4.0.0
- Upgrade
deno.land/std/node
polyfill to 0.119.0 - Upgrade
esbuild
to v0.14.8
- Recover the stable queue
- Filter invalid pathnames like
/wp-admin/login.php
- Fix
?pin
mode when build failed (close #206)
- Add
?pin
mode - Improve build stability
- Fix
marked@4
import - Fix invalid types hangs forever (close #201)
cjs-esm-exports
supports tslib__exportStar
(close #197)- Improve node
perf_hooks
polyfill - Fix redeclared process polyfill (close #195)
- Fix
?worker
mode on deno (#198) - Add
he
tocjs-esm-exports
require mode allow list (close #200) - Fix package css redirect link
- Upgrade esbuild to v0.13.12
- Add playground to write esm app online, try it on https://esm.sh?playground
- Add a better cjs exports parser: cjs-esm-exports
- Support web worker
import editorWorker from '/monaco-editor/esm/vs/editor/editor.worker?worker' const worker = new editorWorker()
- Add
queue
interface - Support dataurl, .wasm import
- Import deno polyfills from https://deno.land/std@0.113.0/node
- Fix package CSS
- Update deno polyfills from 0.106.0 to 0.110.0 (#190)
- Add deno
module
polyfill (#164) - Fix (storage/fs_local) file path portability bug (#158)
- Fix types build (#149)
- Use
stream
andevents
from deno std/node (#136) @talentlessguy - Fix
localLRU
and allow formemoryLRU
(#148) @jimisaacs
- Fix build breaking change in v50 (#131).
- Add
localLRU
FS layer (#126) - Add a
Cache Interface
that is using to store temporary data like npm packages info. - Do not try to build
/favicon.ico
(#132) - Add lovely
pixi.js
,three.js
and@material-ui/core
testing by @jimisaacs (#134, #139).
- Improve build performance to burn the server CPU cores! Before this, to build a module to ESM which has heavy deps maybe very slow since the single build task only uses one CPU core.
- Rewrite the dts transformer to get better deno types compatibility and faster transpile speed.
- Add Deno testing CI on Github.
- Improve the build process to fix an edge case reported in #118
esm (v48) output:
const Parser = require('htmlparser').Parser;
the expected output was fixed in v49:import htmlparser2 from '/v48/htmlparser2@5.0.0/es2021/htmlparser2.js' const Parser = htmlparser2.Parser; // parser is undefined
import { Parser as htmlparser2Parser } from '/v48/htmlparser2@5.0.0/es2021/htmlparser2.js' const Parser = htmlparser2Parser; // parser is a class
- Add more polyfills for Deno, huge thanks to @talentlessguy (#117)
- path
- querystring
- url
- timers
- Better self-hosting options improved by @jimisaacs, super! (#116, #119, #120, #122)
- Add Unlimted(max 1PB) Storage to store builds and cache via NFS on esm.sh back server behind Cloudflare
- Improve cjs-lexer service to handle the edge case is shown below:
esm output:
function debounce() {}; debounce.debounce = debounce; module.exports = debounce;
export { debounce } // this was missed export default debounce
- Ignore
?target
in Deno (fix #109) - Add Storage Interface to store data to anywhere (currently only support postdb + local FS)
- Split modules based on exports defines (ref #78)
- Add
cache-folder
config foryarn add
- Improve
resolveVersion
to support format 4.x (fix #93) - Import initESM to support bare exports in package.json (fix #97)
- Bundle mode should respect the extra external (fix #98)
- Support node:path importing (fix #100)
- Pass
?alias
and?deps
to deps (fix #101) - Improve
cjs-lexer
sever (fix #103) - Upgrade rex to 1.4.1
- Upgrade esbuild to 0.12.24
- Improve build performance
- Filter
cjs-moudle-lexer
server invalid exports output - Improve
resolveVersion
function to support format like 4.x (fix #93) - Improve dts transform (fix #95)
- Add
Alias
feature (#89)in combination withimport useSWR from 'https://esm.sh/swr?alias=react:preact/compat'
?deps
:The origin idea was came from @lucacasonato.import useSWR from 'https://esm.sh/swr?alias=react:preact/compat&deps=preact@10.5.14'
- Add
node
build target (#84) - Check
exports
field to get entry point inpackage.json
- Run cjs-lexer as a server
- Upgrade esbuild to 0.11.18 with
es2021
build target - Bugfixs for #90, #85, #83, #77, #65, #48, #41.
- Add
__esModule
reserved word - Align require change for esbuild 0.12
- Fix setImmediate polyfill args (#75)
- Upgrade esbuild to 0.11.12
- Add
timeout
(30 seconds) for new build request, or use previous build version instead if it exists - Fix
bundle
mode - Fix build dead loop
- Upgrade esbuild to 0.11.12
- Update polyfills for node builtin modules
- Upgrade esbuild to 0.11.9
- Imporve
parseCJSModuleExports
to support json module - Pass
NODE_ENV
toparseCJSModuleExports
- Update node buffer polyfill
- Upgrade postdb to v0.6.2
- Fix build for packages with
module
type (#48) - Improve
parseCJSModuleExports
function (use cjs-module-lexer and nodejs eval both to parse cjs exports, and ignore JSON module) - Pass
NODE_ENV
toparseCJSModuleExports
function - Upgrade esbuild to 0.11.6
- Add bundle mode
- Fix module exports parsing
- Fix esm build for some edge cases
- Add simple test (thanks @zhoukekestar)
- Upgrade esbuild to 0.11.5
- Set build
target
by theuser-agent
of browser automaticlly
- Remove bundle mode · Breaking
- Add build queue instead of mutex lock
- Use AST(cjs-module-lexer) to parse cjs exports
- Add a testing page at https://esm.sh?test
- Fix
__setImmediate$
is not defined - Support exports define in package.json
- Support mjs extension
- Improve NpmPackage resolve (fix #41)
- Upgrade esbuild to 0.11.4
- Upgrade rex to 1.3.0