如何防止 Angular 工作区中的交叉项目?

How can I prevent cross-project in Angular workspace?

假设我有一个具有给定结构的项目:

projects
|-app1
|-app2
|-common
node_modules
pakcage.json
tsconfig.json
angular.json
... (rest of the root files)

现在在 app1 的文件中,我可以放这样的东西: import { Repository } from '../../../app2/src/app/query/repository'; 尽管它可以正常工作(正确构建),但我想避免此类导入,以防万一在某个时候,其中一个项目被移动到单独的 repo,通常是为了保持干净的项目结构。

有什么方法可以指示 angular/typescript 在 serve/build 期间抛出错误,即不允许跨项目导入?

找到了解决方案 - import-blacklist 属性 tslint.json。在我的场景中它看起来像:

{
  "extends": "../../tslint.json",
  "rules": {
    "no-output-native": false,
    "import-blacklist": [true,
      [".*the-other-project.*"]
    ]
  }
}