Nutmeg Pumpkin Macchiato

    TypeScript icon, indicating that this package has built-in type declarations

    0.3.2 • Public • Published

    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:

    1. 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"
    1. 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.


    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


    The following parameters can be passed when invoking the script:


    Shows a reference of all available options:

    $ utils-typescript-references --help
      --help                 Show help                                     [boolean]
      --version              Show version number                           [boolean]
      --skipPackages         Only update project references in the root tsConfig
      --skipRoot             Skip updating project references in project root
                             tsConfig                                      [boolean]
      --excludeInReferences  Exclude specific packages from being referenced by
                             other packages                                  [array]
      --excludeInRoot        Exclude specific packages from being referenced in the
                             root tsConfig                                   [array]
      --tsConfigName         Names of tsConfig files to be updated           [array]


    Provide one or more name of tsconfig.json files in projects across the monorepo that should be updated.

    $ utils-typescript-references --tsConfigName tsconfig.json --tsConfigName

    Defaults to tsconfig.json

    This helpful for monorepos where for instance the builds the modules that are exported from the package, and thus should be run when you are building using tsc -b. In this case the tsconfig.json can be set up to type check only (no emit) and have a manually inserted reference to for running tsc -b.

    Note that once any --tsConfigName is provided, the default tsconfig.json is not updated any more. In order to continue updating tsconfig.json along with any custom configuration files, simply provide it as an extra option:

    $ utils-typescript-references --tsConfigName --tsConfigName tsconfig.json

    This option can also be used if the tsconfig.json file is not in the root of packages (e.g. in the src/ folder). In that case, provide an option as follows:

    $ utils-typescript-references --tsConfigName src/tsconfig.json --tsConfigName tsconfig.json


    Will prevent certain packages from being added to the references of other projects in the monorepo.

    $ utils-typescript-references --excludeInReferences @myproject/packageA --excludeInReferences @myproject/PackageB

    The above will cause @myproject/packageA and @myproject/packageB not to be inserted as referenced in all other packages of the monorepo.


    Will prevent certain packages from being added to the references section of the root tsconfig.json file.

    $ utils-typescript-references --excludeInRoot @myproject/packageA --excludeInRoot @myproject/PackageB


    Will skip updating the references in tsconfig.json files for all packages in the project.

    $ utils-typescript-references --skipPackages


    Will skip updating the references in the tsconfig.json file for the project root.

    $ utils-typescript-references --skipRoot


    • 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


    npm i @goldstack/utils-typescript-references

    DownloadsWeekly Downloads






    Unpacked Size

    29.3 kB

    Total Files


    Last publish


    • mxro