microsoft / microsoft/TypeScript

project reference resolution fails when workspace is opened through a symlinked root path

Abierto
#63,819 1 comentario 0 reacciones 1 asignado Ver en GitHub

@andrewbranch ya está trabajando en esto.

Desde el 6/5/2026.

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

Descripción

## Summary

When a workspace is opened through a symlinked root path, `tsgo` language service can report `TS2307` for packages that should resolve through project references.

In our case:

- Opening the repo via `/data00/home/my-username/my-project` works
- Opening the same repo via `/home/my-username/my-project` fails
- `/home/my-username` is a symlink to `/data00/home/my-username`

The failing diagnostic is:

```ts
Cannot find module '@my-project/base' or its corresponding type declarations.ts(2307)
```

## Environment

- `tsgo` language service
- Linux
- Workspace root opened through a symlink
- Example symlink:

```bash
/home/my-username -> /data00/home/my-username
```

## Actual behavior

When opening a file through the symlinked workspace path, module resolution fails for a package that should resolve via project references.

Example:

- Works: `/data00/home/my-username/my-project/...`
- Fails: `/home/my-username/my-project/...`

## Expected behavior

The same workspace should resolve project-reference-backed packages identically whether it is opened through:

- the real path
- a symlinked root path

## Minimal reproduction

A minimal regression test was added that reproduces the issue with:

- a workspace root exposed through a symlink
- an app project
- a referenced package project
- a `node_modules` symlink from the app to the package
- a package `types` entry pointing at a generated `.d.ts` output that does not exist on disk

Behavior before the fix:

- opening through realpath resolves successfully
- opening through workspace-root symlink fails with `TS2307`

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.