microsoft / microsoft/TypeScript

subpath imports should play well with project references

Abierto
#62,880 1 comentario 0 reacciones 1 asignado Ver en GitHub

@andrewbranch ya está trabajando en esto.

Desde el 12/12/2025.

Needs Investigation
Lenguaje dominante
Go
Estrellas
111k
Forks
14.3k
Merge medio
2 d 4 h
PR fusionados (30 d)
132

Descripción

### 🔎 Search Terms

tsconfig, resolve, package, imports, module, references

### 🕗 Version & Regression Information

5.9.3

TS project refererences in combination with subpath imports mapping to installed packages break Node.js projects.

### ⏯ Playground Link

_No response_

### 💻 Code

```ts
// @scope/alice/src/index.ts
import "@scope/bob/module"; // ok
import "#bob/module"; // breaks
```

```jsonc
// @scope/alice/tsconfig.json
{
"files": [],
"include": [],
"references": { "path": "./tsconfig.other.json" }
}
```

```jsonc
// @scope/alice/tsconfig.other.json
// appears in the error message, but its content should be irrelevant, given
// that @scope/bob/module imports work.
{
"compilerOptions":
{
"composite": true,
// ...
},
"files": [
// whatever, except for files from node_modules, therefore excluding @scope/bob
],
}
```

```json
{
"// package.json": "",
"name": "@scope/alice",
"type": "module",
"imports": {
"#bob/*": "@scope/bob/*"
},
"dependencies": {
"@scope/bob": "*"
},
"// ...": ""
}
```

```sh
tsc --build --noEmit
```

### 🙁 Actual behavior

An error of this kind:

```txt
src/index.ts:3:8 - error TS6307: File '/absolute/path/to/mono-repo/packages/bob/src/module/index.ts' is not listed within the file list of project '/absolute/path/to/mono-repo/packages/alice/tsconfig.other.json'. Projects must list all files or use an 'include' pattern.
File is ECMAScript module because '/absolute/path/to/mono-repo/packages/bob/package.json' has field "type" with value "module"

import "#bob/module"; // breaks
~~~~~~~~~~~~~
```

### 🙂 Expected behavior

Should build just fine, since subpath imports are nothing but a string rewriting mechanism (think: URL shortener). TSC should recognize that `#bob/*` refers to the modules in the external package `@scope/bob/*` from within `node_modules`, rather than treating it as project internal.

### Additional information about the issue

This can't be reproduced on the playground. I am willing to setup a repro repo, if the code in this issue is not sufficient to figure out what's going on.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.