NPM извлекает поврежденные пакеты из экземпляра Verdaccio

Когда я выполняю основной npm install в приложении я пытаюсь настроить разработчика. среда для поврежденных пакетов в итоге извлекается из моего экземпляра прокси-сервера Verdaccio.

Воспроизвести

Шаги для воспроизведения поведения:

  1. Установите package.json для моего проекта, включая добавление моих зависимостей и т. Д.
  2. Настройте мою локальную систему на использование моего экземпляра Verdaccio: npm set registry [[Verdaccio Server URL]]:4873,
  3. выполнять npm install в каталоге у меня есть файл package.json.

Результаты

Я получаю тонну продукции, похожую на следующую:

npm http fetch GET 200 [[Proxy NPM Site]]/@angular%2fplatform-browser-dynamic/-/platform-browser-dynamic-5.2.11.tgz 6430ms
npm WARN tarball tarball data for @angular/router@5.2.11 (sha512-NT8xYl7Vr3qPygisek3PlXqNROEjg48GXOEsDEc7c8lDBo3EB9Tf328fWJD0GbLtXZNhmmNNxwIe+qqPFFhFAA==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for jquery@3.3.1 (sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for ng-bootstrap@1.6.3 (sha1-1B/UIVTAWTQiy4PEc6OCiqdSW/U=) seems to be corrupted. Trying one more time.

Обратите внимание на закодированное в URL имя пакета, в данном случае @angular%2fplatform-browser-dynamic, Я не получаю это, когда я устанавливаю свой прокси, чтобы быть https://registry.npmjs.org/,

Конечно, я хотел бы иметь возможность выполнять npm install как если бы я был подключен к официальному реестру.

Файлы конфигурации и журнала

Дополнительная информация

  • Версия NPM: Последняя - 6.1.0, но это происходит со старыми версиями.
  • Версия узла, на котором работает Verdaccio: 10.4.0
  • Версия узла, на котором работает клиент: 10.4.0

Среда: Windows Server 2012 (SP2)

Сервер, на котором работает Verdaccio, не находится за прокси-сервером.

1 ответ

Решение

Таким образом, после выполнения следующего все работало как задумано:

rmdir /S /Q node_modules (or rm -rf node_modules on a *nix derivative OS)
del package-lock.json (or rm package-lock.json on a *nix derivative OS)
npm set registry [[My Verdaccio Instance's IP]]:4873
npm cache clean --force
npm install --force --verbose --no-bin-links

Я решил свою проблему, выполнив следующие действия:

  1. удалить package-lock.json
  2. бежать npm cache clear --force
  3. бежать npm cache verify
  4. бежать npm install

Если вы вернетесь к NPM версии 3, он снова начнет работать. Публикация в Verdaccio с NPM@3, а затем загрузка с NPM@>=5 вызывала у меня эту проблему.

Это похоже на проблему с вашим node/npm, а не с Angular CLI.

Я предлагаю вам попробовать использовать

  1. npm cache clear --force
  2. npm install

Спасибо.

Пришлось отключить кеш Вердаччо

uplinks:
  npmjs:
    url: https://registry.npmjs.org/
    cache: false

Удаление package-lock.json. Это решило мою проблему.

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