TypeScript References Yarn Workspaces Sync Utility
This library ensures that project references in TypeScript tsconfig.js
files are automatically kept up to date in a project using Yarn 2 workspaces.
Running this script will:
- Add a list of all packages in the workspaces to the root
tsconfig.json
for the "references"
attribute:
{
"references": [
{
"path": "workspaces/apps"
},
{
"path": "workspaces/docs"
},
{
"path": "workspaces/templates"
},
{
"path": "workspaces/templates-lib"
}
]
}
- Update all the
"references"
in the tsconfig.json
for all packages in the workspace so that it includes all the packages that it declares as a dependency in package.json
.
Usage
Install as development dependency using
npm i @goldstack/utils-typescript-references --save-dev
-- or
yarn add -D @goldstack/utils-typescript-references
Add a script to your package.json
{
"scripts": {
"fix-typescript-references": "utils-typescript-references"
}
}
Run the script using
npm run fix-typescript-references
-- or
yarn fix-typescript-references
Options
The following parameters can be passed when invoking the script:
utils-typescript-references --skipPackages
Will skip updating the references
in tsconfig.json
files for all packages in the project.
utils-typescript-references --skipRoot
Will skip updating the references
in the tsconfig.json
file for the project root.
Limitations
- The root of the project and each workspace must contain a
tsconfig.json
. It is currently not able to specify an alternative file name for tsconfig.json
.
- The root
tsconfig.json
file needs to be a vanilla JSON document (so no comments)
If these limitations or anything else are an issues, please raise a ticket in GitHub for the Goldstack Monorepo.
See Also