mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
doc: clarify conditional exports guidance
PR-URL: https://github.com/nodejs/node/pull/34306 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jan Krems <jan.krems@gmail.com>
This commit is contained in:
@@ -456,7 +456,7 @@ Conditional exports can also be extended to exports subpaths, for example:
|
||||
"exports": {
|
||||
".": "./main.js",
|
||||
"./feature": {
|
||||
"browser": "./feature-browser.js",
|
||||
"node": "./feature-node.js",
|
||||
"default": "./feature.js"
|
||||
}
|
||||
}
|
||||
@@ -464,8 +464,16 @@ Conditional exports can also be extended to exports subpaths, for example:
|
||||
```
|
||||
|
||||
Defines a package where `require('pkg/feature')` and `import 'pkg/feature'`
|
||||
could provide different implementations between the browser and Node.js,
|
||||
given third-party tool support for a `"browser"` condition.
|
||||
could provide different implementations between Node.js and other JS
|
||||
environments.
|
||||
|
||||
When using environment branches, always include a `"default"` condition where
|
||||
possible. Providing a `"default"` condition ensures that any unknown JS
|
||||
environments are able to use this universal implementation, which helps avoid
|
||||
these JS environments from having to pretend to be existing environments in
|
||||
order to support packages with conditional exports. For this reason, using
|
||||
`"node"` and `"default"` condition branches is usually preferable to using
|
||||
`"node"` and `"browser"` condition branches.
|
||||
|
||||
#### Nested conditions
|
||||
|
||||
@@ -479,11 +487,11 @@ use in Node.js but not the browser:
|
||||
{
|
||||
"main": "./main.js",
|
||||
"exports": {
|
||||
"browser": "./feature-browser.mjs",
|
||||
"node": {
|
||||
"import": "./feature-node.mjs",
|
||||
"require": "./feature-node.cjs"
|
||||
}
|
||||
},
|
||||
"default": "./feature.mjs",
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user