В документации по Angular Component Router я наткнулся на команду npm, которую я никогда раньше не видел, и я не понимаю, что происходит:
npm install @angular/router --save
Каково значение @angular/router
?
Является ли вся строка именем пакета? Но тогда я не нахожу этот пакет, когда использую поиск на npmjs.com . А также поиск из командной строки не возвращает такой пакет:
npm search @angular/router
:No match found for "@angular/router"
Так это @angular/
какой-то механизм префикса в npm? И как это работает?
javascript
angular
npm
jbandi
источник
источник
npm help scope
Ответы:
Это новая функция NPM, называемая «пакетными пакетами», которая эффективно позволяет пространствам имен пакетов NPM. У каждого пользователя и организации в NPM есть своя область действия, и они являются единственными людьми, которые могут добавлять пакеты в него.
Это полезно по нескольким причинам:
@angular
, вы знаете, что он был опубликован основной группой Angular.http
уже занято в главном репозитории, но Angular также может его иметь@angular/http
.Причина, по которой пакеты с выбранной областью не отображаются в открытом поиске заключается в том, что многие из них являются частными пакетами, созданными организациями, использующими платные сервисы NPM, и им неудобно открывать поиск, пока они не будут полностью уверены, что они не являются собираюсь сделать что-то публичное, что не должно быть публичным - с юридической точки зрения это довольно понятно.
Для получения дополнительной информации см. Документацию NPM и документацию Angular. .
РЕДАКТИРОВАТЬ: Похоже, что пакеты общего назначения теперь правильно отображаются в поиске!
источник
В основном на npm есть два типа модулей:
Глобальные модули - это модули, которые следуют соглашению об именах, которое существует сегодня. Тебе
require('foo')
и там много радости. Они принадлежат одному или нескольким людям черезnpm install XYZ
команду.Модули с областями видимости - это новые модули, которые «ограничены» под названием организации, которое начинается с
@
имени организации, косой черты и, наконец, имени пакета, например@someOrgScope/packagename
. Области являются способом группирования связанных пакетов, а также влияют на некоторые аспекты способа обработки пакета npm.Пакет с установленной областью устанавливается путем ссылки на него по имени, которому предшествует @ -symbol, в npm install:
смотрите также
http://blog.nodejitsu.com/a-summary-of-scoped-modules-in-npm/
https://docs.npmjs.com/misc/scope
источник