npm パッケージの「at」(@)プレフィックスの意味は何ですか? 質問する

npm パッケージの「at」(@)プレフィックスの意味は何ですか? 質問する

の中にAngular コンポーネント ルーターのドキュメント今まで見たことのない npm コマンドに遭遇しましたが、何が起こっているのかわかりません。

npm install @angular/router --save

の意味は何ですか@angular/router

文字列全体がパッケージ名ですか?しかし、検索を使用してもそのパッケージは見つかりません翻訳元また、コマンドライン検索ではそのようなパッケージは返されません。

npm search @angular/router
:No match found for "@angular/router"

では、@angular/npm には何らかのプレフィックス メカニズムがあるのでしょうか? また、どのように動作するのでしょうか?

ベストアンサー1

これは NPM の新機能で、「スコープ付きパッケージ」と呼ばれ、NPM パッケージを効果的に名前空間化できます。NPM のすべてのユーザーと組織には独自のスコープがあり、それらのユーザーだけがそのスコープにパッケージを追加できます。

これはいくつかの理由で便利です:

  • これにより、組織はどのパッケージが「公式」で、どのパッケージがそうでないかを明確にすることができます。
    • たとえば、パッケージに スコープ がある場合@angular、そのパッケージは Angular コア チームによって公開されたことがわかります。
  • パッケージ名は、レジストリ全体ではなく、公開されるスコープ内でのみ一意である必要があります。
    • たとえば、パッケージ名はhttpメインリポジトリですでに使用されていますが、Angular@angular/httpでも使用できます。

その理由はスコープ付きパッケージはパブリック検索には表示されませんその理由は、それらの多くが NPM の有料サービスを利用する組織によって作成されたプライベート パッケージであり、公開すべきでないものを公開しないことが完全に確実になるまでは検索を公開することに抵抗があるからです。法的な観点からすると、これはかなり理解できます。

詳細については、NPMドキュメントそしてそのAngular ドキュメント

編集:どうやらパブリック スコープのパッケージが検索で適切に表示されるようになりました。

おすすめ記事