Не удается установить реестр NPM для зависимостей, не связанных с реестром

Я пытаюсь установить свое приложение 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

Что я пробовал до сих пор ...

  1. Замена always-auth на true или false
  2. Запуск от имени суперпользователя
  3. Пробуем разные токены
  4. с использованием _authToken вместо _auth
  5. Google, много, но, оказывается, моя проблема уникальна.
  6. 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 только для того, чтобы бесконечно продолжать запрашивать другое имя пользователя.

Я заметил, что первая строка вашего файла npmrc выглядит как комментарий с использованием //. Согласно комментариям npmrc docs, не используйте // для комментариев, а вместо этого # или ;. Не уверен, как это обязательно повлияет на это, но кое-что можно попробовать изменить.

obermillerk 18.08.2018 16:38

Кроме того, эта первая строка пытается установить _auth для области URL-адреса? вам следует попробовать установить в свой токен только _auth, чтобы проверить, работает ли это. Если вам нужно охватить вещи, документы, которые я связал в своем предыдущем комментарии, похоже, указывают на то, что для масштабирования чего-то вы делаете @scope:_auth=..., так что это что-то, что можно попробовать. (Вот несколько документов по объем npm, чтобы проверить, если вам интересно)

obermillerk 18.08.2018 16:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
10
2
813
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы хотели бы использовать вход npm с Nexus Repo 3:

https://help.sonatype.com/display/NXRM3/Node+Packaged+Modules+and+npm+Registries#NodePackagedModulesandnpmRegistries-AuthenticationUsingRealmandLogin

И убедитесь, что область токенов-носителей npm включена в разделе «безопасность / области» в пользовательском интерфейсе Nexus.

Тем не менее, это ошибка 403, а не 401. Это означает, что вы получаете отказ из-за разрешений. Я предлагаю проверить nexus request.log и убедиться, что 403-е поступают от Nexus. Они могут исходить с вашего прокси-сервера http. Если они поступают из Nexus, это означает, что пользователь прошел аутентификацию, но не имеет разрешений в nexus для загрузки из этого репо.

использование npm login требует, чтобы я ввел имя пользователя, мое имя пользователя - это адрес электронной почты, который, по-видимому, содержит символы url-unsafe-unsafe, из-за этого он не позволит мне больше. Я также попытался добавить свой токен в качестве аргумента, добавив аргумент --auth или --authToken, за которым следует мой токен, но это оказалось без осложнений.

Vanitas 10.08.2018 10:05

Ошибка, сопровождаемая командой с использованием --auth: npm WARN invalid config auth-type = "MY_TOKEN", `Токен пропущен по очевидным причинам. Когда я использую --authToken, он снова запрашивает у меня имя пользователя.

Vanitas 10.08.2018 10:43

Имейте в виду, что код ошибки 403также кажется "случайным", иногда это 403, иногда 401.

Vanitas 10.08.2018 14:25
Ответ принят как подходящий

Я не знаю, как и почему, но как-то теперь работает, если я укажу полный реестр в команде 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]

Для меня все это не имеет никакого смысла, но я рад, что это работает для разнообразия.

Если кто-то в конечном итоге напишет правильный ответ на этот вопрос о том, почему это работает, как это работает и почему нормальный способ не работает, то я с радостью приму это как ответ и награду награду.

Другие вопросы по теме