Skip to content
This repository was archived by the owner on Sep 2, 2023. It is now read-only.
Prev Previous commit
Next Next commit
divide features into feature sections
  • Loading branch information
guybedford authored Jul 18, 2018
commit db468c3ebdb659466fc1cf2d872dfb19c410b69c
50 changes: 50 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,56 @@ Work includes:

## Features

Based on these use cases (#55), our implementation aims to support the following features (subject to change):

### Baseline Modules Implementation Features:
* Spec compliance (#132)
* Browser equivalence (#133)
* Don’t break CommonJS (#112)
* No refactoring (#87)

#### Browser Interop:
* Browser and Node compatibility without building (#107)
* Browser-compatible specifier resolution (#109)
* Browser-compatible builds for ESM and CommonJS (#108)

#### CommonJS Interop:
* Named exports when importing CJS (#81)
* Multi-mode packages (#94)
* Transparent interoperability for ESM importing CommonJS (#100)
* Consumer-agnostic imports (#105)
* Mixed module types within app/module; gradual migration from CommonJS to ESM (#99)
* ESM in .js files (#151)

### Existing Node.js Features:

* Importing non-JavaScript files (#115)
* NodeJS contextual pathing use cases (#121)
* ESM in executable files (#152)
* Callable resolver (#157)

### Loader Features

* Code coverage/instrumentation (#95)
* Pluggable Loaders to support multiple use cases (#82)
* Runtime loaders, transpilation at import time (#96)
* Arbitrary sources for module source text (#97)
* Mock modules (injection) (#98)
* Specifier resolution customization (#110)
* Package encapsulation (#111)
* Conditional imports (#113)

### WASM Features:

* WASM modules (#106)

### Developer and Tooling Features:

* File / path / URL resolving (#103)
* Import CommonJS without needing asynchronous syntax (#116)
* Tree shaking (#102)
* Polyfillability (#101)

Based on [these use cases](https://docs.google.com/document/d/10BBsIqdAXB9JR2KUzQGYbCiVugYBnxE4REBakX29yyo/edit) ([#55](https://github.com/nodejs/modules/issues/55)), our implementation aims to support the following features (subject to change):

- Spec compliance ([#132](https://github.com/nodejs/modules/issues/132))
Expand Down