[npm] 게시 된 NPM 모듈 이름 바꾸기

이미 게시 된 NPM 모듈의 이름을 바꿀 수있는 방법이 있습니까? 노출하는 API와 더 정확하게 일치하도록 모듈의 이름을 변경하고 싶지만 이미 모듈을 설치 한 사람들을 Lurch에 남겨두고 싶지 않습니다.



답변

그렇게하는 노출 된 방법이 없습니다. 과거에 이것을 만났을 때 내가 취한 접근 방식은 다음과 같습니다.

npm deprecate % ProjectName % @ “<= put-latest-version-here” “경고 :이 프로젝트의 이름이 % NewProjectName %로 변경되었습니다. 대신 % NewProjectName %을 사용하여 설치하십시오.”

npm 지원 중단 지침


답변

간단히 말해서 당신은 할 수 없습니다. 그러나 npm은 npm deprecate.

그것이하는 일은 해당 패키지의 특정 버전 또는 버전 범위를 더 이상 사용되지 않음으로 표시하는 것입니다. 다음으로 누군가이 패키지를 설치하려고하면 사용자 지정 메시지와 함께 더 이상 사용되지 않는 경고 패키지가 표시되며 여기에서 새 패키지 이름을 쉽게 지정할 수 있습니다.

용법:

npm deprecate my-package-name@"< latest-version" "your message"

메시지는 다음과 같을 수 있습니다.

WARNING: This project has been renamed to your-new-package-name. Install using new-package-name instead.


답변

24 시간 이내에 잘못된 패키지를 삭제하기 위해 다음 명령을 실행했습니다.

npm unpublish <wrong package name> --force


답변

문서에서 :

레지스트리 데이터는 변경할 수 없습니다. 즉, 게시 된 후에는 패키지를 변경할 수 없습니다. 우리는 이러한 패키지에 의존하는 사용자의 보안과 안정성을 위해 이렇게합니다.

그러나 새로 게시 된 패키지 ( 72 시간 이내) 는 다음을 실행하여 게시를 취소 할 수 있습니다.

npm unpublish <package_name> -f

게시 된 지 72 시간이 지나지 않은 경우 NPM 레지스트리에서 패키지가 제거됩니다 . 그런 다음 패키지 이름을 변경하고 다시 게시 할 수 있습니다.

주의 : 동일한 이름으로 패키지를 다시 게시하려는 경우 24 시간을 기다려야합니다.


답변

누군가이 작업을 쉽게하기 위해 편리한 작은 npm 플러그인을 만들었습니다 ?

https://www.npmjs.com/package/@tiaanduplessis/pkg-rename

  1. 다음을 사용하여 패키지 설치 npm -g install @tiaanduplessis/pkg-rename
  2. package.json 파일에서 npm 모듈의 이름을 변경하고 저장하십시오.
  3. 운영 pkg-rename old-package-name

문서에서 :

그러면 npm에서 이전 패키지의 최신 버전을 가져 오며 다음 메시지와 함께이 버전과 이전에 게시 된 모든 버전을 더 이상 사용하지 않습니다.

WARNING: This project has been renamed to new-package-name. Install using new-package-name instead.

--publish플래그를 추가 하여 동일한 작업의 일부로 새 패키지 이름을 게시 할 수도 있습니다 .

pkg-rename old-package-name --publish

package.json에서 패키지의 이름을 변경, 기억 첫째 , 다음 실행 pkg-rename명령을 사용합니다.


답변

나는 한때 이런 상황에 있었다. bowser-or-node대신 이름으로 패키지를 게시했습니다 browser-or-node.

패키지 이름을 바꿀 수있는 방법이 없으므로 새 패키지를 더 이상 사용하지 않고 게시해야합니다.

다른 옵션이 하나 있지만. 패키지를 방금 게시 한 경우 (게시 후 24 시간 미만) 패키지를 삭제하고 올바른 이름으로 새 패키지를 게시해도 괜찮다면 계속 진행할 수 있습니다. 그러나 NPM은 게시 후 24 시간이 지나면 패키지를 삭제할 수 없습니다.

다행히도 20 분 이내에 잘못된 이름으로 출판했음을 알게되었습니다. 그래서 방금 삭제하고 새 이름으로 다시 게시했습니다.


답변

방금 놀라운 일이 일어났습니다. 패키지 이름을 바꿀 수있었습니다. 원래 stdout-renderer로 알려졌지만 가능한 모든 이름을 변경하고 원본을 더 이상 사용하지 않고 다시 게시 한 후 새로 업데이트 된 목록에서 더 이상 사용되지 않는 새 이름 (cli-artist)으로 표시됩니다. 어떤 필드를 변경할지 확실하지 않지만 package.json에 있다고 상상할 수 있습니다. 그 이유는 제 경우에 케이싱이 일치하는 유일한 필드이기 때문입니다.

도움이 되길 바랍니다!