GithubHelp home page GithubHelp logo

modules's Introduction

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

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

modules's People

Contributors

mylesborins avatar guybedford avatar jdalton avatar devsnek avatar xtuc avatar geoffreybooth avatar bfarias-godaddy avatar benjamingr avatar webreflection avatar zackschuster avatar fishrock123 avatar targos avatar sendilkumarn avatar timothygu avatar ljharb avatar joyeecheung avatar robpalme avatar tzmanics avatar

Watchers

Ryan Day avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.