programing

npm 링크에 연결된 패키지가 업데이트되지 않습니다.

telecom 2023. 3. 16. 21:09
반응형

npm 링크에 연결된 패키지가 업데이트되지 않습니다.

메인 프로젝트와 컴포넌트 라이브러리의 2개의 모듈이 있으며, 여기서 lib를 메인프로젝트에 링크합니다.둘 다 웹 팩으로 동작하며 반응합니다.그래서 나는 했다:

comp-lib dir:

npm 링크

프로젝트 dir:

npm link comp-lib

패키지는 node_modules 폴더에 표시되지만 컴포넌트 라이브러리에서 작업할 때 변경 내용이 메인 프로젝트에 반영되지 않습니다.내가 뭘 놓쳤지?

Google에서 이 문제에 대한 정보를 찾을 수 없었고 npm 링크 문서에서는 예제에 대해 "~/projects/node-bloggy/node_modules/node-redis에 대한 모든 변경 사항이 반영됩니다."라고만 말합니다.

링크된 패키지에서 유사한 문제가 발생하였습니다.npm link dep예전 버전의 "dep"을 배우고 있었어요

입니다.npm link(다시 'dep' 폴더에 저장)하면 문제가 해결되었습니다.이론적으로는 한 번만 호출해야 하지만 어떤 이유로 인해 동기화되지 않을 수 있습니다.

따라서 링크된 프로젝트를 안정적으로 업데이트하려면 변경 후 다음 단계를 수행하십시오.

  1. 링크된 프로젝트 재구축
  2. 달려.npm link
  3. 호스트 프로젝트 실행 중npm link dep

나는 내가 어떤 문제를 겪었는지 정확히 기억나지 않고 또한 그 모든 것이 필요한지도 잘 모르겠지만 나에게 그것은 잘 작동한다.

패키지에 다음과 같은 미니 스크립트를 추가했습니다.json 스크립트리스트

"scripts": {
  "clean": "if exist dist ( rd /S /Q dist)",
  "updateLink": "npm run clean && tsc && npm rm my-lib -g && npm link"
}

('my-lib'를 패키지 이름으로 대체)

그럼 전화만 해npm run updateLink리브에서 뭔가를 바꿀 때마다요

기능:

  • npm run clean을 실행하면 dist 폴더가 삭제됩니다.파일 이름을 변경한 경우 typecript 컴파일러가 오래된 파일을 삭제하지 않고 새 파일을 병렬로 빌드할 때 유용합니다.
  • tsc를 사용하여 ts->dist 폴더에 대한 ts->disc를 컴파일합니다.
  • npm rm my-lib -g & npm 링크를 사용하여 lib를 삭제하고 글로벌모듈 폴더에서 다시 추가합니다.왜 먼저 지웠는지 기억이 안 나는데 문제가 좀 해결된 것 같아요.

주 프로젝트와 종속 프로젝트의 노드 버전이 정확하게 일치하는지 확인하십시오.

사용하시는 경우nvm여러 노드 버전에서 여러 프로젝트를 관리하려면npm link심볼릭 링크는 노드버전에서만 생성됩니다.npm link(즉, 의존관계 프로젝트)에서 시작되었습니다.

컴포넌트의 버전을 범핑하여 메인프로젝트의 버전을 늘리는 것을 잊었을 수 있습니다.그럼, 어느 쪽이든npm은 이조,,, 에 표시된 합니다.package-lock.json 에 의해 합니다.npm link.

이 경우 모듈/패키지가 빌드 파일을 내보내는 것이 문제였습니다. 이 하면 변경해 .main (그리고)exports case 모든

  "main": "./dist/shared-lib.umd.js",
  "module": "./dist/shared-lib.es.js",
  "exports": {
    ".": {
      "import": "./dist/shared-lib.es.js",
      "require": "./dist/shared-lib.umd.js"
    },
    "./style": "./dist/style.css"
  }

언급URL : https://stackoverflow.com/questions/44515865/package-that-is-linked-with-npm-link-doesnt-update

반응형