NPM извлекает поврежденные пакеты из экземпляра Verdaccio
Когда я выполняю основной npm install
в приложении я пытаюсь настроить разработчика. среда для поврежденных пакетов в итоге извлекается из моего экземпляра прокси-сервера Verdaccio.
Воспроизвести
Шаги для воспроизведения поведения:
- Установите package.json для моего проекта, включая добавление моих зависимостей и т. Д.
- Настройте мою локальную систему на использование моего экземпляра Verdaccio:
npm set registry [[Verdaccio Server URL]]:4873
, - выполнять
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
Я решил свою проблему, выполнив следующие действия:
- удалить package-lock.json
- бежать
npm cache clear --force
- бежать
npm cache verify
- бежать
npm install
Если вы вернетесь к NPM версии 3, он снова начнет работать. Публикация в Verdaccio с NPM@3, а затем загрузка с NPM@>=5 вызывала у меня эту проблему.
Это похоже на проблему с вашим node/npm, а не с Angular CLI.
Я предлагаю вам попробовать использовать
npm cache clear --force
npm install
Спасибо.
Пришлось отключить кеш Вердаччо
uplinks:
npmjs:
url: https://registry.npmjs.org/
cache: false