Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: add realpath to host to properly resolve monorepos / symlinks #332

Merged
merged 2 commits into from
May 30, 2022

Commits on May 27, 2022

  1. fix: add realpath to host to properly resolve monorepos

    - tested this in a pnpm repo with symlinked deps and it worked there,
      so I believe this fixes all pnpm issues
      - it may also fix some Lerna issues if they were due to symlinks, but
        I didn't check those
      - not sure about others, e.g. Rush, Yarn workspaces, Yarn PnP
    
    - I figured out this was needed by staring at the TS source code and
      then I found this line:
      https://github.com/microsoft/TypeScript/blob/67673f324dd5f9398bb53fd16bf75efd155c32e7/src/compiler/moduleNameResolver.ts#L1412
      - it expects `host.realpath` to be implemented for TS's `realPath` to
        work correctly, otherwise it just returns the path with no
        transformation (i.e. the path to the symlink instead of the
        realpath)
        - this is not documented _anywhere_ and we were hitting this when
          calling `getEmitOutput`, before even using `moduleNameResolver`
      - so I just tried implementing it... and it worked!
      - notably, the other Rollup TS plugins don't implement this either???
        - not sure how they don't error on this??
    
    - note that I added a `!` as `realpath` doesn't have to be implemented
      on `ts.sys`... but it is in the default implementation (see comment)
      - I originally had a ternary with `fs.realpathSync` if it didn't exist
        but that is literally what the default implementation uses
        - can add this back in the future if it becomes an issue
    agilgur5 committed May 27, 2022
    Configuration menu
    Copy the full SHA
    89ecea0 View commit details
    Browse the repository at this point in the history
  2. fix realpath test on windows

    agilgur5 committed May 27, 2022
    Configuration menu
    Copy the full SHA
    72651ff View commit details
    Browse the repository at this point in the history