npm опубликовать в нексусе

Я пытаюсь опубликовать пакет npm в нашем частном реестре nexus с помощью этой команды:

npm publish --registry http://localhost:8081/nexus/content/repositories/npmjs

но я получаю эту ошибку:

npm ERR! path C:\Users\USER~1.MAJ\AppData\Local\Temp\npm-13292-e2329f38\tmp\fromDir-e7e42b8d\package.tgz
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall unlink
npm ERR! Error: EPERM: operation not permitted, unlink 'C:\Users\USER~1.MAJ\AppData\Local\Temp\npm-13292-e2329f38\tmp\fromDir-e7e42b8d\package.tgz'
...
npm ERR! Please try running this command again as root/Administrator.

и это моя конфигурация npm (.npmrc):

 registry: 'http://localhost:8081/nexus/content/repositories/npmjs/',
  _auth: 'YWRtaW46YWRtaW4xMjM=',
  'always-auth': true 

Как я могу это решить?

Редактировать :

npm -v: 5.3.0

node -v: v8.8.0

npm config get registry: http://localhost:8081/nexus/content/repositories/npmjs


person Renaud is Not Bill Gates    schedule 27.10.2017    source источник
comment
Есть дополнительная информация, какую систему вы используете, какую версию Node, какую версию NPM? Кроме того, связаны ли вы локально?   -  person Alicia    schedule 27.10.2017
comment
@Lissy, пожалуйста, проверьте мое обновление   -  person Renaud is Not Bill Gates    schedule 27.10.2017


Ответы (2)


Благодаря @DarthHater я нашел решение, поэтому то, что я пытался сделать, это опубликовать в репозитории прокси, который указывал на официальный реестр npm, вместо того, чтобы делать это, я должен создать частный (размещенный) репозиторий для своего собственного пакеты, а затем использовать групповой репозиторий для предоставления всех репозиториев по одному URL-адресу, при этом мне пришлось установить групповой репозиторий как репозиторий по умолчанию (в .npmrc), а частный репозиторий как репозиторий публикации (в package.json), и не забудьте указать адрес электронной почты в .npmrc (любой адрес электронной почты), чтобы при публикации он использовал настройки в локальном .npmrc (аутентификация ...), а не в домашнем .npmrc.

person Renaud is Not Bill Gates    schedule 31.10.2017

Вы пытаетесь опубликовать на прокси-сервере или URL-адресе группы? Я спрашиваю, потому что URL-адрес выглядит так, как будто это прокси-сервер npmjs, просто по соглашению об именах. Если это так, убедитесь, что URL-адрес, который вы используете, предназначен для частного репозитория, размещенного на хосте.

Также используйте Nexus Repository 3 :)

person DarthHater    schedule 28.10.2017
comment
Я хочу опубликовать на прокси-сервере, это мой интерфейс администрирования нексуса: imgur.com/a/2xMXL - person Renaud is Not Bill Gates; 30.10.2017
comment
Публикация на прокси невозможна. Они действуют как зеркало восходящего потока. Вам нужно настроить размещенное репо для npmjs, а затем создать группу, которая, вероятно, будет использовать как вышестоящие пакеты npmjs, так и ваши собственные внутренние пакеты в размещенном репозитории. - person DarthHater; 30.10.2017
comment
Итак, я сделал, как вы сказали, я создал групповой репозиторий, который будет предоставлять частное репо и репо прокси под одним URL-адресом, который я буду использовать для загрузки своих пакетов, а для публикации я использовал частное репо, публикация сейчас работает, но когда я пытаюсь загрузить что-то из репозитория группы, я получаю сообщение об ошибке, не найденной для пакета, который я хочу загрузить, даже если он находится в частном репозитории, то же самое для пакетов в репозитории прокси, похоже, что группа Репозиторий не указывает ни на репозиторий прокси, ни на частный репозиторий. - person Renaud is Not Bill Gates; 31.10.2017
comment
stackoverflow.com/ вопросы / 47017300 / - person Renaud is Not Bill Gates; 31.10.2017