Node.js Foundation Modules Team
Branch: master
Clone or download
ljharb and MylesBorins Update doc/meetings/2019-01-30.md
Co-Authored-By: MylesBorins <myles.borins@gmail.com>
Latest commit 46cfea6 Feb 14, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Update doc/meetings/2019-01-30.md Feb 20, 2019
CODE_OF_CONDUCT.md fixup: fixed it Feb 28, 2018
GOVERNANCE.md governance: be explicit about meetings new members can join Nov 21, 2018
LICENSE.md make it so Feb 1, 2018
README.md doc: update members with ncu-team sync Jan 17, 2019
RESOURCES.md

README.md

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 to potentially replace the --experimental-modules implementation in current shipping Node. The new implementation is in progress in the ecmascript-modules repo, and 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