jbandi jbandi - 18 days ago 6
AngularJS Question

Understanding npm package @-prefix: @angular/router

In the Angular Component Router documentation I just stumbled over a npm command I have never seen before and I don't understand what is going on:

npm install @angular/router --save


What is the meaning of
@angular/router
?

Is the whole string a package name? But then I dont find that package when I use the search on npmjs.com.
And also the commandline search does return no such package:

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


So is the
@angular/
some kind of prefix mechanism in npm? And how does it work?

Answer

This is a new feature of NPM called 'scoped packages'. They effectively allow NPM packages to be namespaced - any package that starts with @angular/ will get grouped into a @angular folder in your node_modules.

The reason that scoped packages don't show up in public search is because a lot of them are private packages created by organizations using NPM's paid services, and they're not comfortable opening the search up until they can be totally certain they're not going to make anything public that shouldn't be public - from a legal perspective, this is pretty understandable.

For more information, see the NPM docs: https://docs.npmjs.com/getting-started/scoped-packages.

Comments