Commit ea87eea
authored
module: fix extensionless CJS files in
24b8585 made the CJS loader respect the `package.json`
type field for extensionless files, which fixed #61104
but also enforced `"type": "module"` for extensionless
files. This broke CJS extensionless files inside ESM
packages (e.g. yargs v17).
Only enforce `"type": "commonjs"` for extensionless files.
For `"type": "module"`, leave format undefined so syntax
detection handles it. This restores the documented
exception in the CJS documentation that has existed
since v16: extensionless files in `"type": "module"`
packages are recognized as CJS when included via
`require()`.
Fixes: #61971
Refs: yargs/yargs#2509
Refs: #61600
PR-URL: #62083
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>"type": "module" packages1 parent f91cf7f commit ea87eeaCopy full SHA for ea87eea
4 files changed
+18-4Lines changed: 18 additions & 4 deletions
File tree
Expand file treeCollapse file tree
Open diff view settings
Filter options
- lib/internal/modules/cjs
- test
- es-module
- fixtures/es-modules/extensionless-cjs-module
Expand file treeCollapse file tree
Open diff view settings
Collapse file
lib/internal/modules/cjs/loader.js
Copy file name to clipboardExpand all lines: lib/internal/modules/cjs/loader.js+4-4Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
1952 | 1952 | |
1953 | 1953 | |
1954 | 1954 | |
1955 | | - |
1956 | | - |
1957 | | - |
| 1955 | + |
| 1956 | + |
| 1957 | + |
1958 | 1958 | |
1959 | 1959 | |
1960 | | - |
| 1960 | + |
1961 | 1961 | |
1962 | 1962 | |
1963 | 1963 | |
|
Collapse file
test/es-module/test-extensionless-esm-type-commonjs.js
Copy file name to clipboardExpand all lines: test/es-module/test-extensionless-esm-type-commonjs.js+10Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
17 | 17 | |
18 | 18 | |
19 | 19 | |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | + |
Collapse file
test/fixtures/es-modules/extensionless-cjs-module/index
Copy file name to clipboard+1Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 1 | + |
Collapse file
test/fixtures/es-modules/extensionless-cjs-module/package.json
Copy file name to clipboard+3Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 1 | + |
| 2 | + |
| 3 | + |
0 commit comments