I'm working on converting a large(ish) monorepo into TypeScript for a client, however, I'm pretty new to TS myself and have run into an error that I can't find an obvious fix for.
TS6059: File '[path to repo root]/packages/config/globals.ts' is not under 'rootDir' '[path to repo root]/packages/components/src'. 'rootDir' is expected to contain all source files.
The globals.ts file isn't supposed to live in the components package, it belongs to the config package so I don't really understand the error.
I have a main tsconfig file in the root of the repo (https://github.com/serge-web/serge/blob/feature/333-game-admin-channel/tsconfig.json) and then each package has it's own tsconfig file which extends that one. The one for the components package is here: https://github.com/serge-web/serge/blob/feature/333-game-admin-channel/packages/components/tsconfig.json
I assume I am extending the tsconfig files in the packages incorrectly or I have used references incorrectly but I can't find the correct way to do this.
Here is a link to the repo if you need to see the structure: https://github.com/serge-web/serge/tree/feature/333-game-admin-channel
In the end the fix was to remove any reference to rootDir from all files other than the tsconfig.json file in the root (which I left as .).
The only thing that worked for me was explicitly add the package containing foreign code as a dependency in package.json:
{
    "dependencies": {
        "@packages/name": "*"
    }
}
In my setup I'm not using Lerna, just raw Yarn Workspaces with both TypeScript and JavaScript packages.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With