【发布时间】:2021-12-06 03:56:42
【问题描述】:
我的项目结构如下:
workspace
|__pkg1
|__tsconfig.json
|__package.json
|__ts/
|__pkg2
|__tsconfig.json
|__package.json
|__ts/
|__lerna.json
|__package.json
|__tsconfig.json
在 workspace/package.json 中,我将 typescript 版本指定为“^4.2.3”。要安装所有包的依赖项,请在工作区目录下运行命令:
npm install & lerna bootstrap && lerna run build
“lerna bootstrap”将安装 pkg1 和 pkg2 的所有依赖项,“lerna run build”(相当于在 pkg1 和 pkg2 中运行“npx tsc”)将从 pkg1 和 pkg2 编译 ts/ 文件夹中的 typescript。原来workspace目录下的tsc版本确实是4.2.3,但是在pkg1和pkg2中,typescript版本是4.5.2
cd pkg1 && npx tsc -v # output is Version 4.5.2
我已尝试 (1) 在工作区/package.json 中将“^4.2.3”更改为“4.2.3”,(2) 在 pkg1 和 pkg2 的 package.json 中明确指定 typescript 版本。 (3) 删除所有 package-lock.json 文件。但是,它们都不起作用。我该如何解决?
在实践中,我需要为这个项目构建一个干净的 docker 镜像。它有多个 pkg,所以我不想在每个包目录中一一安装 typescript。
【问题讨论】:
标签: javascript typescript lerna