typescript version mismatch

My project has a structure like this:

workspace
  |__pkg1
      |__tsconfig.json
      |__package.json
      |__ts/
  |__pkg2
      |__tsconfig.json
      |__package.json
      |__ts/
  |__lerna.json
  |__package.json
  |__tsconfig.json

In workspace/package.json, I specified the typescript version to be “^4.2.3”. To install the dependency for all packages, run the command under workspace directory:

npm install & lerna bootstrap && lerna run build

“lerna bootstrap” will install all the dependencies for pkg1 and pkg2, “lerna run build” (equivalent to run “npx tsc” in pkg1 and pkg2) will compile typescript in ts/ folder from pkg1 and pkg2. It turned out the tsc version in workspace directory is indeed 4.2.3, but in pkg1 and pkg2, the typescript version is 4.5.2

cd pkg1 && npx tsc -v # output is Version 4.5.2

I have tried (1) to change “^4.2.3” to “4.2.3” in workspace/package.json, (2) specify typescript version explicitly in package.json from pkg1 and pkg2. However, neither of them work. How can I fix it? In practice, I have multiple pkgs, so I don’t want to install typescript one by one in each of the package directory.