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:
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:
/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
Summary
When a workspace is opened through a symlinked root path,
tsgolanguage service can reportTS2307for packages that should resolve through project references.In our case:
/data00/home/my-username/my-projectworks/home/my-username/my-projectfails/home/my-usernameis a symlink to/data00/home/my-usernameThe failing diagnostic is:
Environment
tsgolanguage service/home/my-username -> /data00/home/my-usernameActual behavior
When opening a file through the symlinked workspace path, module resolution fails for a package that should resolve via project references.
Example:
/data00/home/my-username/my-project/.../home/my-username/my-project/...Expected behavior
The same workspace should resolve project-reference-backed packages identically whether it is opened through:
Minimal reproduction
A minimal regression test was added that reproduces the issue with:
node_modulessymlink from the app to the packagetypesentry pointing at a generated.d.tsoutput that does not exist on diskBehavior before the fix:
TS2307