Por que meu registro npm particular está listando todos os módulos npm públicos, mesmo que eu não tenha replicado o banco de dados do registro?

3

Eu tenho criado um registro npm particular seguindo estes instruções explícitas para criar um registro privado . No entanto, eu pulei a etapa de replicação porque minha intenção é ter um registro vazio que abrigaria apenas módulos privados.

Tudo parece estar funcionando, no entanto, quando eu executo um comando de teste:

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

Eu recebo a seguinte saída que sugere para mim que o npm está encontrando este módulo público que não deveria existir em meu registro privado:

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

Além disso, quando tento instalar o módulo do meu registro privado, ele é instalado. Oque esta acontecendo aqui? Como estou executando meu próprio CouchDB sem replicar um existente, esperava não ter módulos no banco de dados.

    
por Ryan Jarvis 22.10.2013 / 00:16

1 resposta

2

O cliente npm está armazenando em cache os metadados e arquivos do pacote em um diretório local, geralmente em ~/.npm . Quando você fizer uma pesquisa, ele solicitará apenas o registro e usará os dados em cache para realizar a pesquisa.

Infelizmente, a implementação do cache npm não suporta vários registros, mas sempre mescla todos os dados de todos os registros.

Como solução alternativa, você pode dizer ao npm para usar um diretório de cache diferente ao conversar com seu registro privado:

npm --registry http://localhost:5984/registry/etc. --cache $HOME/.npm-private
    
por 23.10.2013 / 22:56