Skip to content

Commit 21a306d

Browse files
guybedfordrichardlau
authored andcommitted
doc: document null target pattern
PR-URL: #38724 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Derek Lewis <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent 4ecf9b0 commit 21a306d

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

doc/api/packages.md

+23
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,9 @@ For these use cases, subpath export patterns can be used instead:
357357
}
358358
```
359359

360+
**`*` maps expose nested subpaths as it is a string replacement syntax
361+
only.**
362+
360363
The left hand matching pattern must always end in `*`. All instances of `*` on
361364
the right hand side will then be replaced with this value, including if it
362365
contains any `/` separators.
@@ -382,6 +385,26 @@ treating the right hand side target pattern as a `**` glob against the list of
382385
files within the package. Because `node_modules` paths are forbidden in exports
383386
targets, this expansion is dependent on only the files of the package itself.
384387

388+
To exclude private subfolders from patterns, `null` targets can be used:
389+
390+
```json
391+
// ./node_modules/es-module-package/package.json
392+
{
393+
"exports": {
394+
"./features/*": "./src/features/*.js",
395+
"./features/private-internal/*": null
396+
}
397+
}
398+
```
399+
400+
```js
401+
import featureInternal from 'es-module-package/features/private-internal/m';
402+
// Throws: ERR_PACKAGE_PATH_NOT_EXPORTED
403+
404+
import featureX from 'es-module-package/features/x';
405+
// Loads ./node_modules/es-module-package/src/features/x.js
406+
```
407+
385408
### Exports sugar
386409
<!--YAML
387410
added: v12.11.0

0 commit comments

Comments
 (0)