Nexus 3 в качестве хранилища npm не может найти некоторые зависимости: npm ERR!404 Не Найдено: - PullRequest
0 голосов
/ 05 июня 2018

Я использую Nexus 3 в качестве частного хранилища npm.У меня есть проект, который требует некоторых зависимостей, таких как: @nodelib/fs.stat, @mrmlnc/readdir-enhanced@^2.2.1.

Если я выполняю следующие команды установки npm, все работает хорошо:

sudo npm install -g @nodelib/fs.stat
+ @nodelib/fs.stat@1.1.0
added 1 package in 0.481s

sudo npm install -g @mrmlnc/readdir-enhanced@^2.2.1
+ @mrmlnc/readdir-enhanced@2.2.1
added 3 packages in 2.178s

Но я долженнастройте .npmrc для ссылки на мой nexus npm-репозиторий следующим образом:

~ / .npmrc:

registry=http://mynexus.com/repository/npmrepo

Теперь, когда я пытаюсь установить свой частный проект npm install -g generator-myyeomangeneratorесли происходит сбой, потому что он не может загрузить эти зависимости.

Фактически, теперь, когда я настроил свою конфигурацию .npmrc, если я непосредственно выполняю npm install для этих зависимостей, я получаю 404:

sudo npm install -g @nodelib/fs.stat
npm ERR! code E404
npm ERR! 404 Not Found: @nodelib/fs.stat@latest

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/myuser/.npm/_logs/2018-06-04T21_55_56_792Z-debug.log

В файле журнала нет дополнительной информации.

Запустите приложение из этих зависимостей, запустив некоторые другие установки, все нормально работает через репозиторий npm:

sudo npm install -g jav
+ jav@1.0.2
added 71 packages in 9.628s

Кажется, это связанок @ названию deps, вот еще один пример неудачного выполнения:

npm install -g @angular/common@2.4.10
npm ERR! code E404
npm ERR! 404 Not Found: @angular/common@2.4.10

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/myuser/.npm/_logs/2018-06-04T22_01_02_384Z-debug.log

Как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Apache работает перед Nexus?По умолчанию он не позволяет проходить закодированным слешам, это прерывает получение пакетов с областью действия npm.Смотрите здесь, как это исправить: https://issues.sonatype.org/browse/NEXUS-10570

0 голосов
/ 05 июня 2018

Исправлено с помощью этого пользовательского файла .npmrc, который использует общедоступный репозиторий npm для тех пакетов с областью действия, которые не могут быть разрешены с помощью Nexus:

@angular:registry=https://registry.npmjs.org/
@nodelib:registry=https://registry.npmjs.org/
@mrmlnc:registry=https://registry.npmjs.org/
registry=http://mynexus.com/repository/npmrepo/
...