Nrwl Nx Monorepo 작업 공간 종속성 그래프 오류 수정
If you are working on
nx monorepo workspace
and if you have notice below error and want to fix it then read this article.“Error: A project without tags cannot depend on any libraries (nx-enforce-module-boundaries)”
Nx Monorepo Workspace에서 종속성 그래프는 어떻게 작동합니까?
따라서 태그가 없는 프로젝트는 다른 프로젝트에 의존할 수 없습니다.
앱용 프로젝트 태그는 Nx.json에 정의되어 있습니다.
nx.json 파일에는 내 애플리케이션에 대한 프로젝트 태그가 있습니다.
onlinestore-admin
, onlinestore-client
, onlinestore-dashboard
"onlinestore-client": {
"tags": ["scope:itops", "type:onlinestore-client"]
},
"onlinestore-admin": {
"tags": ["scope:itops", "type:onlinestore-admin"]
},
"onlinestore-dashboard": {
"tags": ["scope:itops", "type:onlinestore-dashboard"]
},
그러나 앱에 대한 종속성 제약 조건이 Tslint.json에 없습니다.
tslint.json
파일 내에서 애플리케이션에 대한 종속성 제약 조건이 없음을 알 수 있습니다. "nx-enforce-module-boundaries": [
true,
{
"enforceBuildableLibDependency": true,
"allow": [],
"depConstraints": [
{
"sourceTag": "scope:sales",
"onlyDependOnLibsWithTags": ["scope:sales", "scope:branding"]
},
{
"sourceTag": "type:sales-product-editor",
"onlyDependOnLibsWithTags": [
"type:sales-product-editor",
"type:branding-logger",
"type:branding-layout",
"type:branding-ng-material"
]
},
{
"sourceTag": "type:sales-products",
"onlyDependOnLibsWithTags": [
"type:sales-products",
"type:branding-logger",
"type:branding-layout",
"type:branding-ng-material"
]
},
{
"sourceTag": "scope:customers",
"onlyDependOnLibsWithTags": ["scope:customers", "scope:branding"]
},
{
"sourceTag": "type:customers-user-editor",
"onlyDependOnLibsWithTags": [
"type:customers-user-editor",
"type:branding-logger",
"type:branding-layout",
"type:branding-ng-material"
]
},
{
"sourceTag": "type:customers-users",
"onlyDependOnLibsWithTags": [
"type:customers-users",
"type:branding-logger",
"type:branding-layout",
"type:branding-ng-material"
]
},
{
"sourceTag": "scope:branding",
"onlyDependOnLibsWithTags": ["scope:branding"]
}
]
}
],
따라서 nx는 프로젝트에 대한 종속성 제약 조건을 찾을 수 없으므로 오류가 발생합니다.
Nx 종속성 그래프 오류에 대한 솔루션
2가지 옵션이 있습니다.
[*]
를 사용하여 모든 사람이 다른 모든 프로젝트에 액세스하도록 허용할 수 있습니다. 다음을 추가하면 태그가 없는 프로젝트가 다른 모든 프로젝트에 종속될 수 있습니다.{
"sourceTag": "*",
"onlyDependOnLibsWithTags": ["*"]
}
그러나 모든 프로젝트가 다른 프로젝트에 액세스하도록 허용하는 것은 권장하지 않습니다.
onlinestore-client
및 해당 종속성을 명시적으로 정의합니다. {
"sourceTag": "type:onlinestore-client",
"onlyDependOnLibsWithTags": [
"type:sales-products",
"type:customers-users",
"type:branding-logger",
"type:branding-layout",
"type:branding-ng-material"
]
},
{
"sourceTag": "type:onlinestore-admin",
"onlyDependOnLibsWithTags": [
"type:sales-product-editor",
"type:customers-user-editor",
"type:branding-logger",
"type:branding-layout",
"type:branding-ng-material"
]
},
나는 옵션 2를 수행했고 내 오류가 사라진 것을 알았습니다.
결론
이제 "태그가 없는 프로젝트는 라이브러리에 의존할 수 없습니다(
nx-enforce-module-boundaries
)"오류를 제거하는 방법을 배웠습니다. nx monorepo 작업 공간 내에서 종속성 경계를 설정하려면 다음 문서를 읽어보십시오. NX Monorepo: Imposing Constraints on Dependency Graph . 경계 또는 서비스 내에서 종속성을 제한하려는 경우도 있습니다. 어떻게 달성할 수 있는지 알아보려면 이 문서를 읽으십시오Enforcing Dependency Constraints Within a Service using Nx Monorepo.풀 스택 개발자 되기 💻
나는 Fullstack Master에서 가르칩니다. 풀 스택 개발자가 되고 새로운 소프트웨어 개발자 또는 수석 개발자/설계자로 캐리어를 성장시키려는 경우. 전체 스택 개발 교육 프로그램에 가입하는 것을 고려하십시오. All-Access Monthly 멤버십 플랜에 등록하여 모든 비디오 코스, 슬라이드, 소스 코드 및 월간 화상 통화에 무제한으로 액세스할 수 있습니다.
You bright future is waiting for you so visit todayFullstackMaster and allow me to help you to board on your dream software company as a Developer,Architect or Lead Engineer role.
💖 나에게 👋라고 말해! Rupesh Tiwariwww.rupeshtiwari.com ✉️Email Rupesh Founder of Fullstack Master
Reference
이 문제에 관하여(Nrwl Nx Monorepo 작업 공간 종속성 그래프 오류 수정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rupeshtiwari/fixing-nrwl-nx-monorepo-workspace-dependency-graph-error-4eg0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)