3

Я настраивал частный реестр npm, следуя этим четким инструкциям по созданию частного реестра. Однако я пропустил шаг репликации, потому что я намерен создать пустой реестр, в котором будут только частные модули.

Все, кажется, работает, когда я запускаю тестовую команду:

npm --registry http://localhost:5984/registry/_design/scratch/_rewrite search /^zipper

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

npm http GET http://localhost:5984/npm_registry/_design/scratch/_rewrite/-/all/since?stale=update_after&startkey=1382392304289
npm http 200 http://localhost:5984/npm_registry/_design/scratch/_rewrite/-/all/since?stale=update_after&startkey=1382392304289
NAME           DESCRIPTION                                  AUTHOR      DATE              VERSION KEYWORDS
zipper         Insanely simple zipfile creator for node.js  =rubenv     2013-05-06 11:35  0.3.0  zip compress archive libzip
zipper-insane  Insanely simple zipfile creator for node.js  =diorahman  2011-12-17 15:54  0.0.1  zip compress archive libzip

Кроме того, когда я пытаюсь установить модуль из моего личного реестра, он устанавливает. Что тут происходит? Поскольку я использую свою собственную CouchDB без репликации существующей, я ожидал, что в базе данных не будет модулей.

1 ответ1

2

Клиент npm кэширует метаданные пакета и архивы в локальном каталоге, обычно в ~/.npm . Когда вы выполняете поиск, он запрашивает в реестре только обновления и использует кэшированные данные для выполнения поиска.

К сожалению, реализация кэша npm не поддерживает несколько реестров, она всегда объединяет все данные из всех реестров.

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

npm --registry http://localhost:5984/registry/etc. --cache $HOME/.npm-private

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .