@@ -434,8 +434,8 @@ If the given path does not exist, `require()` will throw an [`Error`][] with its
434434
435435<!--type=misc-->
436436
437- It is convenient to organize programs and libraries into self-contained
438- directories, and then provide a single entry point to those directories.
437+ > Stability: 3 - Legacy: Use [subpath exports][] or [subpath imports][] instead.
438+
439439There are three ways in which a folder may be passed to `require()` as
440440an argument.
441441
@@ -452,8 +452,6 @@ If this was in a folder at `./some-library`, then
452452`require('./some-library')` would attempt to load
453453`./some-library/lib/some-library.js`.
454454
455- This is the extent of the awareness of `package.json` files within Node.js.
456-
457455If there is no [`package.json`][] file present in the directory, or if the
458456[`"main"`][] entry is missing or cannot be resolved, then Node.js
459457will attempt to load an `index.js` or `index.node` file out of that
@@ -470,6 +468,11 @@ with the default error:
470468Error: Cannot find module 'some-library'
471469```
472470
471+ In all three above cases, an `import('./some-library')` call would result in a
472+ [`ERR_UNSUPPORTED_DIR_IMPORT`][] error. Using package [subpath exports][] or
473+ [subpath imports][] can provide the same containment organization benefits as
474+ folders as modules, and work for both `require` and `import`.
475+
473476## Loading from `node_modules` folders
474477
475478<!--type=misc-->
@@ -1076,6 +1079,7 @@ This section was moved to
10761079[`"main"`]: packages.md#main
10771080[`"type"`]: packages.md#type
10781081[`ERR_REQUIRE_ESM`]: errors.md#err_require_esm
1082+ [`ERR_UNSUPPORTED_DIR_IMPORT`]: errors.md#err_unsupported_dir_import
10791083[`Error`]: errors.md#class-error
10801084[`__dirname`]: #__dirname
10811085[`__filename`]: #__filename
@@ -1090,3 +1094,5 @@ This section was moved to
10901094[exports shortcut]: #exports-shortcut
10911095[module resolution]: #all-together
10921096[native addons]: addons.md
1097+ [subpath exports]: packages.md#subpath-exports
1098+ [subpath imports]: packages.md#subpath-imports
0 commit comments