Я пытаюсь установить свое приложение Ionic через реестр с его зависимостями.
Я пытаюсь добиться этого с помощью npm i --loglevel verbose
, а мой ~/.npmrc
выглядит так:
//nexus.OMMITED.com/repository/:_auth=OMMITED
registry=http://nexus.OMMITED.com/repository/npm-all
always-auth=true
Когда я смотрю, как запускается команда, кажется работает нормально, пока мы не затронем другие зависимости, не связанные с реестром, внезапно я столкнулся с ошибкой авторизации.
Вот вставка команды: https://hasteb.in/hejigopo.sql
Как вы видите, в данном случае это не удается на @angular/[email protected]
, но это переменные между случайными зависимостями @angular
или @ionic-native
Что я пробовал до сих пор ...
always-auth
на true
или false
_authToken
вместо _auth
npm login --registry=http://nexus.OMMITED.com/repository/npm-all
с --auth=TOKEN_OMITTED
и --authToken=TOKEN_OMITTED
, где npm сообщает мне npm WARN invalid config auth-type = "TOKEN_OMITTED"
и запрашивает имя пользователя, однако мое имя пользователя является адресом электронной почты, который вызывает эту ошибку: npm WARN Name may not contain non-url-safe chars
только для того, чтобы бесконечно продолжать запрашивать другое имя пользователя.Кроме того, эта первая строка пытается установить _auth
для области URL-адреса? вам следует попробовать установить в свой токен только _auth
, чтобы проверить, работает ли это. Если вам нужно охватить вещи, документы, которые я связал в своем предыдущем комментарии, похоже, указывают на то, что для масштабирования чего-то вы делаете @scope:_auth=...
, так что это что-то, что можно попробовать. (Вот несколько документов по объем npm, чтобы проверить, если вам интересно)
Вы хотели бы использовать вход npm с Nexus Repo 3:
И убедитесь, что область токенов-носителей npm включена в разделе «безопасность / области» в пользовательском интерфейсе Nexus.
Тем не менее, это ошибка 403, а не 401. Это означает, что вы получаете отказ из-за разрешений. Я предлагаю проверить nexus request.log и убедиться, что 403-е поступают от Nexus. Они могут исходить с вашего прокси-сервера http. Если они поступают из Nexus, это означает, что пользователь прошел аутентификацию, но не имеет разрешений в nexus для загрузки из этого репо.
использование npm login
требует, чтобы я ввел имя пользователя, мое имя пользователя - это адрес электронной почты, который, по-видимому, содержит символы url-unsafe-unsafe, из-за этого он не позволит мне больше. Я также попытался добавить свой токен в качестве аргумента, добавив аргумент --auth
или --authToken
, за которым следует мой токен, но это оказалось без осложнений.
Ошибка, сопровождаемая командой с использованием --auth
: npm WARN invalid config auth-type = "MY_TOKEN",
`Токен пропущен по очевидным причинам. Когда я использую --authToken
, он снова запрашивает у меня имя пользователя.
Имейте в виду, что код ошибки 403
также кажется "случайным", иногда это 403
, иногда 401
.
Я не знаю, как и почему, но как-то теперь работает, если я укажу полный реестр в команде likeo:
npm --registry=http://nexus.OMITTED.com/repository/npm-all/ install
Пока мой ~/.npmrc
выглядит так:
//nexus.OMITTED.com/repository/:_authToken=OMITTED
registry=http://nexus.OMITTED.com/repository/npm-all/
_auth=OMITTED
[email protected]
Для меня все это не имеет никакого смысла, но я рад, что это работает для разнообразия.
Если кто-то в конечном итоге напишет правильный ответ на этот вопрос о том, почему это работает, как это работает и почему нормальный способ не работает, то я с радостью приму это как ответ и награду награду.
Я заметил, что первая строка вашего файла npmrc выглядит как комментарий с использованием
//
. Согласно комментариям npmrc docs, не используйте//
для комментариев, а вместо этого#
или;
. Не уверен, как это обязательно повлияет на это, но кое-что можно попробовать изменить.