DevServer는 패브릭 워크로드를 개발하는 동안 실행하는 로컬 웹 서버입니다. localhost에서 프론트엔드(SPA)를 실행하고, 개발 중에 Fabric이 호출하여 제품 및 항목 매니페스트를 가져오는 HTTP 엔드포인트 소규모 집합을 제공합니다. DevGateway와 결합하면 패브릭은 iFrame에서 워크로드 UI를 로드하고 테넌트에 아무것도 게시하지 않고 매니페스트 데이터를 읽을 수 있습니다.
DevServer의 기능
- Fabric이 iFrame에 로드할 수 있도록 localhost에서 http://localhost:60006HTTP를 통해 워크로드 프런트 엔드를 호스트합니다.
- 매니페스트에서 참조하는 정적 자산(아이콘, 지역화된 문자열, 이미지)을 제공합니다.
- 패브릭이 개발 중에 매니페스트를 읽는 데 사용하는 로컬 JSON 엔드포인트를 노출합니다.
- 대부분의 설정에서 핫 다시 로드를 통해 빠른 편집-새로 고침 주기를 사용하도록 설정합니다.
중요합니다
DevServer는 DevGateway와 함께 작동합니다. DevGateway는 패브릭에 로컬 워크로드 인스턴스를 등록하므로 개발 중 서비스가 DevServer 엔드포인트와 통신할 것을 알 수 있습니다.
Fabric에서 DevServer를 호출하는 위치
개발 모드를 사용하도록 설정하고 DevGateway와 DevServer를 모두 시작하는 경우:
- 패브릭은 워크로드 매니페스트에 정의된 프런트 엔드 엔드포인트를 통해 프런트 엔드로 이동합니다( 워크로드 매니페스트 참조). 개발 시 일반적으로 DevServer에서 노출하는 localhost URL을 가리킵니다.
- 패브릭은 워크로드에 대한 탐색, 타일 및 기타 UX를 렌더링할 수 있도록 제품 관련 메타데이터에 대해 DevServer를 쿼리합니다. 이렇게 하면 패키지를 다시 빌드하고 업로드하지 않고도
Product.json및 항목 매니페스트를 반복할 수 있습니다.
DevServer에서 제공하는 로컬 엔드포인트
정확한 경로는 템플릿에 따라 다를 수 있지만 샘플 리포지토리는 예측 가능한 작은 엔드포인트 집합을 노출합니다.
- GET /— 웹앱을 반환합니다(UI 패브릭이 iFrame에 로드됨).
- GET /manifests - 프런트 엔드에서 사용하는 제품 매니페스트 및 항목 매니페스트를 집계하는 JSON 페이로드를 반환합니다. 이는 게시 시 Fabric이 예상하는 구조를 반영합니다( 제품 매니페스트 및 항목 매니페스트 참조).
- GET /assets/... - 매니페스트에서 참조하는 아이콘, 이미지 및 지역화된 문자열을 제공합니다.
비고
- CORS 및 헤더는 샘플 DevServer에서 미리 구성되므로 앱을 포함하고 호스트와 통신할 수 있습니다.
- 위의 경로 이름은 현재 샘플을 따릅니다. 프로젝트에서 매니페스트 엔드포인트에 다른 경로를 사용하는 경우 템플릿의 추가 정보를 참조하세요.
일반적인 개발 흐름
- 샘플 리포지토리에서 DevServer를 시작하여 localhost에서 프런트 엔드를 호스트합니다.
- DevGateway를 시작하여 패브릭에 로컬 워크로드를 등록합니다.
- Fabric 작업 영역을 열고 워크로드 진입점을 시작합니다. 패브릭은 iFrame에서 앱을 로드하고 DevServer 엔드포인트를 호출하여 매니페스트 데이터를 읽습니다.
- UI 또는 매니페스트 파일을 편집하고 새로 고칩니다. 변경 내용은 다시 패키징하지 않고 즉시 적용됩니다.
각 프로세스를 시작하는 방법은 시작 자습서 및 설치 가이드를 참조하세요.
게시된 매니페스트와의 관계
프로덕션 환경에서 워크로드의 매니페스트는 워크로드의 NuGet 패키지의 일부로 패키지 및 업로드됩니다( 매니페스트 개요 참조). 개발 중에 DevServer의 로컬 엔드포인트는 패키지된 파일에 대한 간단한 스탠드인 역할을 하므로 신속하게 반복할 수 있습니다.
- 스키마 및 규칙은 게시된 매니페스트와 동일합니다.
- DevServer는 로컬 개발에만 영향을 줍니다. 게시의 작동 방식은 변경되지 않습니다.
문제 해결 팁
- iFrame에 빈 페이지가 표시되면 DevServer가 실행 중이고 매니페스트의 프런트 엔드 엔드포인트가 올바른 localhost URL을 가리키는지 확인합니다.
- 아이콘 또는 문자열이 누락된 경우,
assets경로를 확인하고 DevServer가 파일들을 해당 경로 아래에서/assets제공하는지 확인하십시오. - Fabric에서 매니페스트를 찾을 수 없는 경우 경로가
/manifests템플릿에 있는지 확인하고 유효한 JSON을 반환합니다.