Skip to content
forked from nodejs/modules

Node.js Foundation Modules Team

License

Notifications You must be signed in to change notification settings

liuxiucai/modules

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

217 Commits
 
 
 
 
 
 
 
 
 
 
 
 

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 CommonJS Interoperability
  • Node.js and Browser interoperability
  • VM Modules implementation

Current Efforts

A new ECMAScript modules implementation shipped behind the --experimental-modules flag in Node 12. The flag is scheduled to be dropped in November 2019 as part of a minor release of Node 13. A road map of the implementation’s 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