是否有可能使Typescript知道package.json中定义的依赖项版本?

时间:2019-01-06 11:42:52

标签: typescript npm yarn-workspaces

我已经意识到,当我在具有一定依赖项的项目上运行tsc时,只要我的系统中Node模块解析路径中任何位置都存在依赖项的任何版本,编译都会成功。

例如:

  • 在由纱线工作区管理的monorepo中,该工作区包含两个程序包( project_1 project_2
  • 如果 project_1 在其package.json中声明了依赖项 dep_1
  • 安装yarn之后,将 dep_1 添加到根node_modules

我现在可以在 project_2 中为 dep_1 使用导入语句,而无需将 dep_1 添加到 project_2 的程序包中.json和tsc在编译时不会抱怨。

可以更改此行为以使Typescript了解每个项目的package.json中声明的依赖项吗?

2 个答案:

答案 0 :(得分:2)

这是吊装包裹的固有问题,也是许多包裹被装箱的原因。尽管如此,TSLint提供了no-implicit-dependencies规则,以防止导入未列为直接依赖项的提升包。

答案 1 :(得分:0)

请注意,这并非特定于TypeScript。您将可以通过普通的JavaScript执行相同的操作。它是吊装所固有的。