公開されたNPMモジュールの名前を変更する


94

すでに公開されているNPMモジュールの名前を変更する方法はありますか?モジュールの名前を変更して、公開するAPIとより正確に一致させたいが、すでにモジュールをインストールしている人を常駐させたくない。

回答:


123

それを行うための公開された方法はありません。私が過去にこれに遭遇したとき、私が取ったアプローチは:

npm deprecate%ProjectName%@ "<= put-latest-version-here" "警告:このプロジェクトは%NewProjectName%に名前が変更されました。代わりに%NewProjectName%を使用してインストールしてください。"

npm廃止予定の手順


18

簡単に言えば、できません。しかし、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.

1
最新バージョンを通知する<=よりも<、おそらく使用する方が良いでしょうか?
デビッドシャーレット


10

ドキュメントから:

レジストリデータは不変です。つまり、いったん公開されると、パッケージは変更できません。これは、これらのパッケージに依存するユーザーのセキュリティと安定性の理由から行っています。

ただし、新しく公開されたパッケージ(72時間以内)は、次のコマンドを実行して非公開にすることができます。

npm unpublish <package_name> -f

72時間以内に公開されたパッケージは、NPMレジストリから削除されます。その後、パッケージの名前を変更して、再度公開できます。

注意:同じ名前のパッケージを再公開しようとすると、24時間待つ必要があります


8

誰かがこれを簡単に行うための便利な小さな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コマンドを。


1
npmには新しいスローガンが必要です
。JavaScript

1
npmで
2FAを

3

私はかつてこのような状況にありました。私は名前のパッケージを発表bowser-or-node代わりにbrowser-or-node

パッケージの名前を変更する方法はありません。新しいパッケージを非推奨にして公開する必要があります。

他に1つのオプションがありますが。パッケージを公開した直後(公開時から24時間未満)で、パッケージを削除して正しい名前で新しいパッケージを公開してもよい場合は、先に進んでそれを実行できます。ただし、NPMでは、公開時から24時間後にパッケージを削除することはできません。

幸いにも、20分以内に間違った名前で公開したことがわかりました。削除して、新しい名前で再度公開しました。


興味深いことに、私はそうしようとしていますが、古いパッケージを削除しただけでも、「既存のパッケージに類似したパッケージ名」と言われます。
スティーブベネット

ああ、実際私の場合、類似点は私の古いパッケージではなく、別のパッケージでした。
スティーブベネット

-1

驚異的なことが起こりました。パッケージの名前を変更することができました。元々はstdout-rendererと呼ばれていましたが、可能な限りすべての名前を変更し、オリジナルを非推奨にしてから再発行し、新しく更新されたリストでは非推奨ではない新しい名前(cli-artist)で表示されます。変更するフィールドはわかりませんが、package.jsonにあると思います。これは、私のケースで大文字と小文字が一致する唯一のフィールドであるためです。

お役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.