npm unpublish
não funciona e não mostra nenhum erro, embora o registro responda com um código 404.
npm unpublish @siliceum/[email protected] --loglevel verbose
registro público npm
A linha de comando apenas imprime
- @ siliceum / [email protected]
enquanto o servidor responde com um erro 404.
Além disso, o ponto de extremidade https://registry.npmjs.org/@siliceum%2fcalcite-cli
retorna informações, mas a versão com ?write=true
( https://registry.npmjs.org/@siliceum%2fcalcite-cli?write=true
) retorna um erro 404 não encontrado.
npm unpublish @siliceum/[email protected]
O pacote não foi publicado ou um erro foi impresso. (em última análise, algo mais que um 404).
Com o nível de log detalhado é possível ter a seguinte saída
npm unpublish @siliceum/[email protected] --loglevel verbose
npm info funcionou se terminar com ok
npm verbo cli [
verbo npm cli 'C: \ Arquivos de programas \ nodejs \ node.exe',
npm verbo cli 'C: \ Arquivos de programas \ nodejs \ node_modules \ npm \ bin \ npm-cli.js',
verbo npm cli 'cancelar a publicação',
verbo npm cli '@ siliceum / [email protected] ',
verbo npm cli '--loglevel',
NPM verbo cli 'verboso'
npm verbo cli]
informações de npm usando
Informação npm usando
npm verbo npm-sessão e43c8f8257e968e5
npm http fetch GET 404 https://registry.npmjs.org/@siliceum%2fcalcite-cli ? write = true 492ms
- @ siliceum / [email protected]
saída do verbo npm [0, verdadeiro]
cronometragem npm npm concluído em 1157ms
npm info ok
Também tendo este problema com npm unpublish
e npm deprecate
!
$ npm deprecate --force --verbose [email protected] "Generates errors related to exports in the browser, use 1.2.2 or newer"
...
npm http fetch GET 200 https://registry.npmjs.org/luar?write=true 328ms
npm http fetch PUT 404 https://registry.npmjs.org/luar 98ms
npm verb stack Error: 404 Not Found - PUT https://registry.npmjs.org/luar - Not found
npm verb stack at /usr/lib/node_modules/npm/node_modules/npm-registry-fetch/check-response.js:114:15
npm verb stack at processTicksAndRejections (internal/process/task_queues.js:93:5)
npm verb statusCode 404
npm verb pkgid [email protected]
...
npm ERR! code E404
npm ERR! 404 Not Found - PUT https://registry.npmjs.org/luar - Not found
npm ERR! 404
npm ERR! 404 '[email protected]' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
...
$ npm unpublish --force --verbose [email protected]
...
npm http fetch GET 200 https://registry.npmjs.org/luar?write=true 257ms
npm http fetch PUT 404 https://registry.npmjs.org/luar/-rev/5-260b27ca1cdb4a5d3b4175578e1c0300 99ms
npm verb stack Error: 404 Not Found - PUT https://registry.npmjs.org/luar/-rev/5-260b27ca1cdb4a5d3b4175578e1c0300 - Not found
npm verb stack at /usr/lib/node_modules/npm/node_modules/npm-registry-fetch/check-response.js:114:15
npm verb stack at processTicksAndRejections (internal/process/task_queues.js:93:5)
npm verb statusCode 404
npm verb pkgid [email protected]
...
npm ERR! code E404
npm ERR! 404 Not Found - PUT https://registry.npmjs.org/luar/-rev/5-260b27ca1cdb4a5d3b4175578e1c0300 - Not found
npm ERR! 404
npm ERR! 404 '[email protected]' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
...
Tendo o mesmo problema ao executar npm deprecate
- recebendo de volta um 404 não encontrado. A causa foi porque eu não fui autenticado corretamente ( npm adduser
resolveu) - mas a saída Não encontrado leva você para fora da tangente. Mesmo que não haja a possibilidade de a API do servidor retornar um código de status diferente (como 401), algumas saídas desses comandos para sugerir o login seriam boas. A saída pode ser genérica e sempre exibida ("certifique-se de estar logado!") Ou pode ser exibida se você não tiver um authToken presente.
Mas estou logado! Isso está exatamente na mesma sessão de terminal onde acabei de publicar uma nova versão como o proprietário do pacote
Ops! Esqueça isso, acabei de sair e voltar e agora as duas funções funcionam, estranho, desculpe a confusão!
@luawtf Ah, nesse caso, parece que esta é a mesma situação que a minha - esses comandos exibem 404 Não encontrado quando o problema real está relacionado à autenticação.
Sim! Concordo que um erro mais geral e detalhado seria ótimo.
Além disso, por que o registro retorna um 404 quando um 401 Unauthorized faria mais sentido? Isso também não deveria ser corrigido?
Acordado. Parece estranho para pacotes que já são públicos - não há nada a ganhar em termos de segurança retornando um 404 em vez de 401 neste caso. Faria sentido se um pacote fosse privado, assim como o GitHub mostra um 404 se você tentar acessar um repositório privado quando estiver desconectado, para não revelar o fato de que há algo naquele URL.
Posso confirmar que o problema foi que eu não estava conectado.
Retornar um 401 ou ter uma mensagem avisando sobre não estar conectado parece bom para mim.
encontramos isso com um pacote público também. npm unpublish @scope/package<strong i="5">@version</strong> --verbose
mostra um 404, mas caso contrário, o cancelamento da publicação parece ser bem-sucedido
Eu tenho o mesmo problema, não sendo capaz de deprecate
um pacote meu. Presumi que tinha algo a ver com o pacote cujo escopo estava sendo %2f
na URL, mas realmente não entendo o que está acontecendo.
$ node -v
v14.15.0
$ npm -v
6.14.8
$ npm deprecate @alling/foo-bar "This package should not be used."
npm ERR! code E404
npm ERR! 404 Not Found - PUT https://registry.npmjs.org/@alling%2ffoo-bar - Not found
npm ERR! 404
npm ERR! 404 '@alling/foo-bar<strong i="9">@latest</strong>' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
@SimonAlling o que acontece com o npm v7.0.11?
@SimonAlling o que acontece com o npm v7.0.11?
$ docker run -it node bash
# npm -v
7.0.8
# npm login
Logged in as alling on https://registry.npmjs.org/.
npm notice
npm notice New patch version of npm available! 7.0.8 -> 7.0.11
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.0.11
npm notice Run npm install -g [email protected] to update!
npm notice
# npm deprecate nonexisting-package-asdfasdf LOL
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/nonexisting-package-asdfasdf?write=true
npm ERR! 404
npm ERR! 404 'nonexisting-package-asdfasdf<strong i="8">@latest</strong>' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
# npm deprecate @alling/foo-bar "This package should not be used."
Nenhum erro ou outra saída, mas nenhuma mensagem de depreciação apareceu na página do pacote (ou seja, https://www.npmjs.com/package/@alling/foo-bar), mesmo depois de meia hora, então tentei executar o comando novamente:
# npm deprecate @alling/foo-bar "This package should not be used."
npm ERR! code E422
npm ERR! 422 Unprocessable Entity - PUT https://registry.npmjs.org/@alling%2ffoo-bar - Unprocessable Entity
No entanto, se eu for para uma versão específica do pacote (por exemplo, https://www.npmjs.com/package/@alling/foo-bar/v/1.1.6), vejo a mensagem de suspensão de uso esperada *. Mas eu quero que ele apareça na página principal do pacote também (como por exemplo urix
).
* Última versão: _Este pacote tornou-se obsoleto_. Qualquer outra versão: _Esta versão está obsoleta_.
EDITAR: A mensagem de reprovação finalmente apareceu na página principal do pacote.
Isso está usando o npm v7.0.8; você pode npm install -g npm@7
antes de executar o comando deprecate?
A mensagem de reprovação finalmente apareceu na página principal do pacote, então acredito que funcione com o npm v7.0.8. : ligeiramente_smiling_face:
Comentários muito úteis
Ops! Esqueça isso, acabei de sair e voltar e agora as duas funções funcionam, estranho, desculpe a confusão!