Skip to content

CrownBonded/modules

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modules Team

Purpose

The Node.js Modules Team maintains and actively develops the ESModules (ESM) implementation in Node.js Core.

Work includes:

  • ESM Loader implementation
  • ESM Module Specifier Resolution Algorithm
  • Loader Hooks
  • ESM and Common.js Interoperability
  • Node.js and Browser interoperability
  • VM Modules implementation

Current Efforts

The team is working on a new implementation that replaces the Node.js 8 through 11 --experimental-modules implementation starting in Node.js 12. The new implementation is in progress in the ecmascript-modules repo. A road map of its development is here.

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 Utility 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)

Members

Observers

About

Node.js Foundation Modules Team

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published