Go 모듈에서 '버전이 없는 교체 모듈은 디렉터리 경로(루트 또는...로 시작)여야 합니다.' 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-05 17:56:02
원래의
1017명이 탐색했습니다.

Why does Go Modules throw the

go 모듈 - "버전이 없는 교체 모듈은 디렉터리 경로여야 합니다(루팅되거나 다음으로 시작하는...") 결함

문맥에서 go 모듈 중 바꾸기 지시문을 사용하면 모듈을 로컬 경로로 바꿀 수 있습니다. 그러나 이 지시문에는 특정 요구 사항이 있습니다. 경로는 루트("/"로 시작)이거나 모듈의 루트에 상대적이어야 합니다.

문제 이해

제공된 시나리오에서 go 모듈(goweb) 내에서 로컬 패키지(mypack)를 사용하려고 시도하면 "버전이 없는 교체 모듈은 디렉터리 경로(루트 또는 로 시작)여야 합니다."라는 오류가 발생했습니다. 이 오류는 경로가 바꾸기 지시문에 지정된 경로가 필수 형식을 충족하지 않습니다.

문제 해결

이 문제를 해결하려면 바꾸기 지시문의 경로가 다음 조건을 충족하는지 확인하세요. :

  • 절대 경로여야 합니다("/"로 시작).
  • 경로가 상대 경로인 경우 모듈의 루트 디렉터리(다음을 포함하는 디렉터리)에 대한 상대 경로여야 합니다. go.mod 파일).

해결 방법

goweb 모듈의 경우 mypack은 루트 디렉터리의 형제이므로 올바른 교체 지시문 is:

<code class="go">replace mypack => ../mypack</code>
로그인 후 복사

또한 이 교체가 효과적으로 작동하려면 mypack을 해당 디렉토리에 go.mod 파일을 추가하여 go 모듈로 변환해야 합니다. 이는 mypack 디렉토리 내에서 go mod init mypack 명령을 실행하여 수행할 수 있습니다.

기타 고려 사항

앱과 앱에서 사용하는 패키지가 동일한 일부인 경우 go 모듈을 go.mod에 추가할 필요는 없습니다. 단순히 코드 내에서 패키지를 참조하면 충분합니다.

리소스

  • [Go 모듈의 교체 지시어](https://go.dev/ref /mod#hdr-Replace_Directives)
  • ["GOPATH" 외부에 있는 모듈을 다른 모듈에서 어떻게 사용하나요?](https://stackoverflow.com/questions/52576751/how-to-use- 다른 모듈의 gopath 외부에 있는 모듈)

위 내용은 Go 모듈에서 '버전이 없는 교체 모듈은 디렉터리 경로(루트 또는...로 시작)여야 합니다.' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!