0.2.0 • Published 5 years ago
typescript-monorepo-toolkit v0.2.0
typescript-monorepo-toolkit
CLI tool to automatically setup typescript project references for yarn workspaces monorepos and other tasks
It can inject the appropriate tsconfig.references for all of the packages in a yarn workspace, and also help you change rootDir and outDir across all of the packages
Background / Motivation:
- https://github.com/thi-ng/ 100+ packages monorepo that i want to move to project refs
- #32028 Build-Free Editing for Project References
- Infer project references from common monorepo patterns / tools #25376
How to use
npx typescript-monorepo-toolkit inject-refs ../path-to/yarn-project-rootFor debug info
DEBUG=typescript-monorepo-toolkit npx typescript-monorepo-toolkit inject-refs ../path-to/yarn-project-rootUsage: [options] [command]
Options:
-V, --version output the version number
-p, --tsconfig-path <tsconfigpath> Use alterative config path inside the package. eg: test/tsconfig.json (default: "tsconfig.json")
-h, --help output usage information
Commands:
inject-refs [options] <yarn-project-root> Inject the appropriate tsconfig references based on yarn workspaces dependency graph
set-outDir <yarn-project-root> [newOutDir] Set the compilerOptions.outDir in all of the packages. omit new value to delete
set-rootDir <yarn-project-root> [newRootDir] Set the compilerOptions.rootDir in all of the packages. omit new value to deleteHow does it work
yarn workspaces info command has all the info we need.
The tsconfig.json manipulation is done using recast, as tsconfig.json is not really JSON, so we can keep the comments. Unfortunately recast changes some of the formatting of the file.
This tool might break your tsconfigs Please run this tool on a clean git state, and inspect the diff
Future possible improvements
- Become obsolete when #25376 is fixed
- Find a good name
- Support
tsconfig.test.jsonand similar patterns - Support lerna/other monorepo tools that can provider us with the dependency graph
Need TypeScript/JavaScript help with your open-source project? Feel free to contact me directly!
Need TypeScript/JavaScript help in your company? I'm available for consultation :)
0.0.0-0c924b8
5 years ago
0.2.0
5 years ago
0.0.0-dcac4b3
5 years ago
0.0.0-c56e394
5 years ago
0.1.1
5 years ago
0.1.0
5 years ago
0.0.0-444ffdb
5 years ago
0.0.0-48c21e1
5 years ago
0.0.0-15553e2
5 years ago
0.0.7
6 years ago
0.0.6
6 years ago
0.0.5
6 years ago
0.0.4
6 years ago
0.0.3
6 years ago
0.0.2
6 years ago
0.0.1
6 years ago