Skip to content

Commit ab4d230

Browse files
committed
Gate #/ subpath imports on NodeNext and Bundler module resolution modes
1 parent ed2bf3d commit ab4d230

File tree

26 files changed

+126
-1357
lines changed

26 files changed

+126
-1357
lines changed

src/compiler/moduleNameResolver.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1690,13 +1690,16 @@ export enum NodeResolutionFeatures {
16901690
// allowing `*` in the LHS of an export to be followed by more content, eg `"./whatever/*.js"`
16911691
// not supported in node 12 - https://github.com/nodejs/Release/issues/690
16921692
ExportsPatternTrailers = 1 << 4,
1693-
AllFeatures = Imports | SelfName | Exports | ExportsPatternTrailers,
1693+
// allowing `#/` root imports in package.json imports field
1694+
// not supported until mass adoption - https://github.com/nodejs/node/pull/60864
1695+
ImportsPatternRoot = 1 << 6,
1696+
AllFeatures = Imports | SelfName | Exports | ExportsPatternTrailers | ImportsPatternRoot,
16941697

16951698
Node16Default = Imports | SelfName | Exports | ExportsPatternTrailers,
16961699

16971700
NodeNextDefault = AllFeatures,
16981701

1699-
BundlerDefault = Imports | SelfName | Exports | ExportsPatternTrailers,
1702+
BundlerDefault = Imports | SelfName | Exports | ExportsPatternTrailers | ImportsPatternRoot,
17001703

17011704
EsmMode = 1 << 5,
17021705
}
@@ -2646,7 +2649,7 @@ function loadModuleFromExports(scope: PackageJsonInfo, extensions: Extensions, s
26462649
}
26472650

26482651
function loadModuleFromImports(extensions: Extensions, moduleName: string, directory: string, state: ModuleResolutionState, cache: ModuleResolutionCache | undefined, redirectedReference: ResolvedProjectReference | undefined): SearchResult<Resolved> {
2649-
if (moduleName === "#") {
2652+
if (moduleName === "#" || (startsWith(moduleName, "#/") && !(state.features & NodeResolutionFeatures.ImportsPatternRoot))) {
26502653
if (state.traceEnabled) {
26512654
trace(state.host, Diagnostics.Invalid_import_specifier_0_has_no_possible_resolutions, moduleName);
26522655
}

tests/baselines/reference/nodeModulesPackageImportsRootWildcard(module=node16).errors.txt

Lines changed: 0 additions & 51 deletions
This file was deleted.

0 commit comments

Comments
 (0)