eslint - eslint 规则 @nrwl/nx/enforce-module-boundaries 失败 [更新]
问题描述
介绍
当我最近将 Ng 代码库移植到 Nx 12.x 时,我对这条规则感到非常困惑。我希望这篇文章可以帮助其他开始从 Ng 迁移到 Nx 的人。
上面的代码库是一个相当小的单个 repo,现在用于生产。使用 Nx 时,最好遵循 monorepo 的建议,以便在未来随着代码库的增长能够使用 monorepo 的好处。(例如,我在这里避免过度暴露当前仓库中的代码)。
我将上面的代码库放入my-org/apps/my-small-repo
. 通过 linting,我对规则的失败感到困惑@nrwl/nx/enforce-module-boundaries
。所以我尝试了不同的可能性来映射编译器或 linter 或两者都失败src/app
的地方。my-org/apps/my-small-repo
我想出了以下解决方案。
解决方案 1
就放
"compilerOptions": {
"baseUrl": "src"
},
进入根目录,并用以 .开头apps/my-small-repo/tsconfig.json
的导入替换其中的所有导入。apps/my-small-repo
app
示例DashboardComponent
:
import { DashboardComponent } from 'app/components/dashboard/dashboard.component';
可能是更好的解决方案
此解决方案在 nx 13.x 上进行了测试,但它可能也适用于以前版本的 nx。
放
"app/*": ["apps/my-org/src/app/*"]
到你paths
的回购根目录中。然后将规则放在 repo 根目录中。compilerOptions
tsconfig.base.json
"allowCircularSelfDependency": true,
@nrwl/nx/enforce-module-boundaries
我们决定"allowCircularSelfDependency": true,
避免使用丑陋的相对路径,例如../../../../../
应用程序中的这个路径。而且我们还希望只有库名称空间tsconfig.base.json
。
规则文件
解决方案
推荐阅读
- pandas - 如何在数据框中创建新列并将它们全部分配为 0?
- gnome-terminal - 新标签的 gnome-terminal PWD
- python - TensorFlow 中如何使用 Graph 制作模型
- typescript - 如何实现泛型函数来实例化 TypedArrays
- xslt-2.0 - XSLT中的IF条件通过比较父节点中子节点的计数
- html - 我可以将选择选项名称传递给 Angular 中的 ngModelChange 方法吗?
- python - 如何在时域计算音高基频 f( 0) )?
- python - 创建一个表格,显示列表是否包含在数据框的分组列中
- java - 如何使用来自 url 的共享图像方法
- python - 当镜像关闭时,如何安全地交换基础 docker 镜像?