の中に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 ドキュメント。