Closed
Description
At the moment, our monorepo is configured in a hacky way to allow TypeScript to build individual packages independently but still allow the TypeScript Language Service run by VSCode to treat the monorepo as one large project.
Let's abandon our non-standard setup and leverage TypeScript's Project References instead.
Work done so far:
- build: drop multiple dist targets, always use es2017 build: drop multiple dist targets, always use es2017 #1803
- refactor: let TypeScript do resource copying refactor: let TypeScript do resource copying #1824
- move test files to
src/__tests__
build(testlab): move test files tosrc/__tests__
#2283 build: move test files tosrc/__tests__
in example apps #2316 build: move test files tosrc/__tests__
in packages #2330 Scaffold test files tosrc/__tests__
+ small fixes #2339
Work remaining:
- 🚶 remove top-level
index.*
files and usemain
&types
entries inpackage.json
instead refactor: remove hand-written index files #5440feat: enable declarationMap, use .d.ts files in monorepo too #2613 - chore: add script to build typescript project references feat: enable TypeScript project references #5155
chore: add script to build typescript project references #1636 - 🚶update example projects and CLI templates (if needed) fix(cli): remove project references from examples #5204
Nice to have implement it or create follow-up stories:
- Watch mode
- Incremental builds - already done by feat(build): enable incremental compilation #2928
- Incremental builds on Travis CI and AppVeyor - cache intermediate files between CI runs
- Travis CI docs: https://docs.travis-ci.com/user/caching/
- AppVeyor docs: https://www.appveyor.com/docs/build-cache/