-
Notifications
You must be signed in to change notification settings - Fork 13.1k
Description
π Search Terms
typeRoots, module resolution, moduleResolution, bundler
π Version & Regression Information
- This changed between versions 5.0.4 and 5.1.3 (variants with
Preservesince 5.4.2)
β― Playground Link
No response
π» Code
No response
π Actual behavior
Setting typeRoots to ./node_modules/@types changes how modules are resolved when using the following compiler options:
moduleResolution: Node16, module: Node16moduleResolution: Node10, module: PreservemoduleResolution: Bundler, module: ES2015 | ES2020 | ES2022 | ESNext | Preserve
π Expected behavior
Setting typeRoots to ./node_modules/@types should not change how modules are resolved.
Additional information about the issue
Clone this gist and execute setup.sh to see a minimal reproduction. It sets up a package with various export types, and tries to compile a file with corresponding imports using various module/moduleResolution combinations. Not all imports are expected to work for all combinations, but the errors are expected to be the same regardless of whether typeRoots is specified. If the errors are different, the script will log the errors along with the compiler options used. (No output from the script means there were no mismatched errors.)
Sample output:
{ module: 'Preserve', moduleResolution: 'Bundler' }
=== no typeRoots ===
index.ts(1,22): error TS2307: Cannot find module 'pkg' or its corresponding type declarations.
index.ts(2,30): error TS2307: Cannot find module 'pkg/index' or its corresponding type declarations.
index.ts(3,32): error TS2307: Cannot find module 'pkg/index.js' or its corresponding type declarations.
index.ts(4,32): error TS2307: Cannot find module 'pkg/internal' or its corresponding type declarations.
index.ts(5,34): error TS2307: Cannot find module 'pkg/internal.js' or its corresponding type declarations.
index.ts(6,32): error TS2307: Cannot find module 'pkg/external' or its corresponding type declarations.
index.ts(7,34): error TS2307: Cannot find module 'pkg/external.js' or its corresponding type declarations.
index.ts(8,31): error TS2307: Cannot find module 'pkg/exports' or its corresponding type declarations.
== with typeRoots ==
index.ts(8,31): error TS2307: Cannot find module 'pkg/exports' or its corresponding type declarations.
{ module: 'Preserve', moduleResolution: 'Node10' }
=== no typeRoots ===
index.ts(1,22): error TS2307: Cannot find module 'pkg' or its corresponding type declarations.
index.ts(2,30): error TS2307: Cannot find module 'pkg/index' or its corresponding type declarations.
index.ts(3,32): error TS2307: Cannot find module 'pkg/index.js' or its corresponding type declarations.
index.ts(4,32): error TS2307: Cannot find module 'pkg/internal' or its corresponding type declarations.
index.ts(5,34): error TS2307: Cannot find module 'pkg/internal.js' or its corresponding type declarations.
index.ts(6,32): error TS2307: Cannot find module 'pkg/external' or its corresponding type declarations.
index.ts(7,34): error TS2307: Cannot find module 'pkg/external.js' or its corresponding type declarations.
index.ts(8,31): error TS2307: Cannot find module 'pkg/exports' or its corresponding type declarations.
== with typeRoots ==
index.ts(8,31): error TS2307: Cannot find module 'pkg/exports' or its corresponding type declarations.