Skip to content

Latest commit

 

History

History
18 lines (15 loc) · 1.29 KB

README.md

File metadata and controls

18 lines (15 loc) · 1.29 KB

Simple example of making jump-to-source work in VSCode for a monorepo. In ./packages/second/src/index.ts, you can cmd+click on the first function, and instead of going to the type definition in ./packages/first/dist/index.d.ts, it will go directly to the source code.

The key is the paths entry in ./tsconfig.json. The wildcard pattern says "for any @acme dependency, skip the type definition and go to the corresponding package's src dir. Note that all of the paths listed are relative to baseUrl (which in turn is relative to that specific tsconfig file), which is why they don't include packages/. The wildcard is merely a convenience if all @acme projects are in the same monorepo. If that's not the case, these can be listed individually instead, e.g.:

{
  "extends": "./tsconfig.base.json",
  "compilerOptions": {
    "baseUrl": "./packages",
    "paths": {
      "@acme/first": ["first/src"],
      "@acme/second": ["second/src"]
    }
  }
}

VSCode looks at <projectRoot>/tsconfig.json by default, so this file is essentially just "donated" to the IDE. All of the actual build configs inherit from ./tsconfig.base.json (as does ./tsconfig.json), so it can be used for any other editor-specific settings, like including test dirs that should be excluded from the real build.