Skip to content

Commit

Permalink
doc: refine require/import conditions constraints
Browse files Browse the repository at this point in the history
Backport-PR-URL: #35757
PR-URL: #35311
Reviewed-By: Jan Krems <jan.krems@gmail.com>
  • Loading branch information
guybedford authored and MylesBorins committed Nov 16, 2020
1 parent 5f0b157 commit 5330930
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions doc/api/packages.md
Original file line number Diff line number Diff line change
Expand Up @@ -364,12 +364,15 @@ For example, a package that wants to provide different ES module exports for
Node.js supports the following conditions out of the box:

* `"import"` - matched when the package is loaded via `import` or
`import()`. Can reference either an ES module or CommonJS file, as both
`import` and `import()` can load either ES module or CommonJS sources.
_Always matched when the `"require"` condition is not matched._
* `"require"` - matched when the package is loaded via `require()`.
As `require()` only supports CommonJS, the referenced file must be CommonJS.
_Always matched when the `"import"` condition is not matched._
`import()`, or via any top-level import or resolve operation by the
ECMAScript module loader. Applies regardless of the module format of the
target file. _Always mutually exclusive with `"require"`._
* `"require"` - matched when the package is loaded via `require()`. The
referenced file should be loadable with `require()` although the condition
will be matched regardless of the module format of the target file. Expected
formats include CommonJS, JSON, and native addons but not ES modules as
`require()` doesn't support them. _Always mutually exclusive with
`"import"`._
* `"node"` - matched for any Node.js environment. Can be a CommonJS or ES
module file. _This condition should always come after `"import"` or
`"require"`._
Expand Down

0 comments on commit 5330930

Please sign in to comment.