programing

Yarn의 로컬 경로로 패키지를 설치하는 방법은 무엇입니까?패키지를 찾을 수 없습니다.

yellowcard 2023. 8. 18. 22:29
반응형

Yarn의 로컬 경로로 패키지를 설치하는 방법은 무엇입니까?패키지를 찾을 수 없습니다.

내 안에서package.json로컬 패키지를 가리키고 있습니다.my-custom-i18n상대 경로를 기준으로:

꾸러미제이손

"dependencies": {
 "core-js": "^2.4.1",
 "my-custom-i18n": "./../MyProject.Shared/myproject-i18n",
 "rxjs": "5.0.0-beta.12",
 ...
}

npm install패키지를 올바르게 설치하지만yarn문제가 있어 이 패키지를 찾을 수 없습니다.

실 생산량

$ yarn
yarn install v0.15.1
info No lockfile found.
[1/4] Resolving packages...
error Couldn't find package "myproject-i18n" on the "npm" registry.
info Visit http://yarnpkg.com/en/docs/cli/install for documentation about this command.

나는 그것이 그것으로 보이는 것을 봅니다.npm이 패키지가 존재하지 않는 레지스트리.

질문.

현지 패키지와 함께 실을 사용하는 것에 변화가 있습니까?로컬 패키지란 상대 경로가 가리키는 패키지를 의미합니다.my-custom-i18n.

실 버전 < 2.x

실에는 접두사가 필요합니다.file:로컬 패키지의 경우.

상대 경로의 경우:

yarn add file:./../your-project

절대 경로의 경우

yarn add file:/dev/your-project

예를 들어, 종속성package.json다음과 같이 선언됩니다.

 "my-custom-i18n": "file:./../MyProject.Shared/myproject-i18n",

이것은 Yarn과 NPM 모두에 효과가 있습니다.

NPM 클라이언트와 호환되지 않습니다. Yarn 팀은 GitHub 문제에 대한 참조인 이 행동을 지원하기로 결정했습니다.

업데이트:

v0.21.0 릴리스 이후file:접두사가 필요하지 않습니다.수정변경 로그가 포함된 풀 요청을 참조하십시오.

yarn version >= 2.x(Yarn Berry)용

로컬 패키지를 참조하기 위해 Yarn은 다양한 프로토콜을 지원합니다.

  • file:지정된 디렉터리의 복사본을 만듭니다.상대 경로를 지정할 때(다음으로 시작)./또는../) 또는 절대 경로(로 시작)/), ,file:접두사도 생략할 수 있습니다.
  • portal:지정된 디렉토리에 대한 심볼 링크를 만들고 해당 과도 종속성을 해결합니다.
  • link:지정된 디렉토리에 대한 심볼릭 링크를 생성하지만 전이 종속성은 해결되지 않습니다.

종속성을 추가하려면 실행yarn add your-project@file:../your-project.

실행 시도 중yarn add file:../your-project(없이)your-project@prefix)로 인해 다음 오류가 발생합니다.Usage Error: The file:../your-project string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?.

로컬 패키지에 간단히 연결하려는 경우(로컬 패키지의 변경 사항이 다시 설치하지 않고 선택됨):

yarn add link:./../your-project

문서에 대한 자세한 정보 보기

해봤습니다.file:실로 용액을 만들었지만 작동하지 않았습니다.저는 직접 패키지를 포함하는 다른 경로를 선택했습니다.추가할 수 있었습니다.watch파일 변경 시 브라우저를 자동으로 다시 빌드하고 업데이트합니다.

내 상황

두 개의 디렉토리가 있는 Git 저장소가 있었습니다. example/react-highlight-in-test 영역/. (간단하게 설명하겠습니다.)mylib/아래).예제/예제/패키지에 종속성이 있는 반응 응용 프로그램입니다.다음의 아들:"mylib": "file:../mylib/"/src/App.js의 예에 포함된 내용import { MyLib } from 'mylib'.

내 솔루션

  1. example/package.json에서 mylib를 제거합니다.

    yarn remove mylib

  2. 배포를 내 프로젝트의 일부로 만듭니다.

    (cd example/src && ln -s ../../mylib/dist mylib)

  3. example/src/App.js의 포함 항목을 변경합니다.

    import { MyLib } from './mylib'

  4. mylib에 watch를 설치합니다.

    (cd mylib ; yarn add watch)

  5. 하기 령가scripts/패키지의json (b).

    "watch": "watch 'yarn build' src",

  6. 이제 터미널(c)에서 실행합니다.

    (cd mylib && yarn install && yarn watch &)
    (cd example && yarn install && yarn start)
    

성공.

이제 내가 변경을 하고 lib/src/ 또는 example/src/에 저장할 때마다 다시 빌드되고 브라우저의 React 페이지로 푸시됩니다.


각주

이러한 사전 설정은 패키지를 사용하기 위한 많은 시도 중 하나입니다.이 일을 성공시키기 위해 json.

더 정확한 방법이 있을 수도 있지만, 저에게는 효과가 있었습니다.

저도 아마 이것을 실스크립트로 만들 수 있었을 것입니다.

언급URL : https://stackoverflow.com/questions/40102686/how-to-install-package-with-local-path-by-yarn-it-couldnt-find-package

반응형