Получение 404 при попытке опубликовать новый пакет в NPM

Я только что создал новый пакет: https://github.com/supericium/pli

Сейчас я впервые пытаюсь опубликовать его в NPM следующим образом:

    ole@MKI:~/Sandbox/pli$ npm publish  --access public
    npm ERR! publish Failed PUT 404
    npm ERR! Linux 3.13.0-93-generic
    npm ERR! argv "/home/ole/.nvm/versions/v6.4.0/bin/node" "/home/ole/.nvm/versions/v6.4.0/bin/npm" "publish" "--access" "public"
    npm ERR! node v6.4.0
    npm ERR! npm  v3.10.3
    npm ERR! code E404

    npm ERR! 404 Not found : @supericium/pli
    npm ERR! 404 
    npm ERR! 404  '@supericium/pli' 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 ERR! Please include the following file with any support request:
    npm ERR!     /home/ole/Sandbox/pli/npm-debug.log

Я попытался обновить NodeJS и NPM, чтобы убедиться, что у меня установлена ​​последняя версия, а именно:

ole@MKI:~/Sandbox/pli$ node --version
v6.4.0
ole@MKI:~/Sandbox/pli$ npm --version
3.10.3

Мысли?

Тиа, Оле


person Ole    schedule 24.08.2016    source источник


Ответы (13)


Вам нужно зарегистрировать supericium (npm adduser) в качестве имени пользователя в реестре и войти в систему (npm login), чтобы публиковать в этой области.

person Stoffe    schedule 24.08.2016

В моем случае это решается npm login, сообщение об ошибке вводит в заблуждение

person igonejack    schedule 25.09.2020
comment
Это работает... но когда я опубликовал свой пакет в npm, их сайт перестал работать и показывает мне error loading page :))) - person DenisKolodin; 16.01.2021
comment
Примечание: проблема не в клиенте, а в том, что реестр npm отправляет 404. Мне сказали, что когда вы, например. используйте verdaccio в качестве прокси, он отправляет 401, если информация для входа неверна. Что заставляет клиента показывать ожидаемое сообщение о входе в систему. - person AndyO; 10.05.2021

Наткнулся на эту же ошибку, и моя проблема заключалась в том, что для пакета каким-то образом был установлен доступ только «Чтение». Поэтому мне нужно перейти к NPM и обновить пакет до доступа «Чтение/запись»:

1.

введите описание изображения здесь

2.

введите описание изображения здесь

person Jee Mok    schedule 04.12.2018
comment
Решил мою проблему! - person Joseph238; 13.03.2019
comment
Потратил столько времени, пытаясь исправить это, прежде чем я нашел это. Спасибо ;) - person Jacob Poul Richardt; 04.04.2019

Вы также можете получить эту ошибку, когда меняете свой пароль на NPM, но не выходите из системы/не входите в систему через CLI. Использование npm logout, а затем npm login сработало для меня.

person Klemen    schedule 10.08.2020
comment
Ух... Это было для меня. Ничто не говорит вам, что вы не вошли в систему. - person Will Strohl; 15.09.2020

в моем случае мне пришлось подтвердить адрес электронной почты. даже когда npm whoami говорил мне, что я вошел в систему нормально.

person dcsan    schedule 22.11.2020
comment
Как вы подтвердили адрес электронной почты? Выполнив npm config ls или что-то другое? - person Derek Hubbard; 05.06.2021

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

публикация Ошибка PUT 404 npm ERR! код E404 н/мин ОШИБКА! 404 Пользователь не найден

Но после входа в консоль с именем учетной записи он успешно опубликован

person Hamit YILDIRIM    schedule 20.12.2018

После успешной публикации пакета вы можете столкнуться при попытке npm install:

npm ERR! code E404
npm ERR! 404 Not Found: @xxx/yyy@latest

или что-то подобное, независимо от того, удалось ли вам npm publish. В этом случае убедитесь, что ваш {main: 'file.js'} в packages.json присутствует.

В идеале, вы можете назвать его index.js, если вы хотите получить пиявку прямо из пакета, чтобы вы не получали такие вещи, как import * from '@xxx/yyy/file'.

person Greg Wozniak    schedule 13.03.2019

В моем случае мне не хватало поля repository в package.json моего нового пакета, который я пытался опубликовать.

"repository": "git://github.com/your-org/your-repo-name.git"

https://docs.npmjs.com/files/package.json#repository

person Janno Teelem    schedule 01.08.2020

В моем случае я получил это сообщение, потому что токен, который я использовал, был отозван. Я исправил это:

  1. Создание нового токена доступа в моей учетной записи npm.
  2. Изменение строки: export NPM_TOKEN="<token>" в моем файле .zshrc (или .bashrc)
  3. Ввод source ~/.zshrc в терминал.
person dmc85    schedule 29.01.2021

Я столкнулся с той же проблемой, но успешно решил ее, удалив версию LTS, а затем установив текущую версию вместе с пряжей.

person Nicodemus Ngufuli    schedule 01.05.2020

В моем случае я случайно набрал https://registry.npmjs.org вместо https://registry.npmjs.com (.org или .com)

person Skylar Brown    schedule 26.06.2020
comment
По умолчанию в документах указано .org в качестве правильного URL-адреса — docs.npmjs. com/cli/v7/using-npm/config#registry - person jthegedus; 21.07.2021

Просто добавлю свои два цента к возможным решениям

Я получал эту ошибку в рабочем процессе CI, поэтому не было интерактивного входа в систему или связанных с ним вещей. Существующие пакеты работали правильно, а добавление нового - нет, я получал 404. Я понял, что это должно быть что-то связанное с самим новым пакетом, а не со средой CI, и так оно и было.

В новом пакете отсутствовали два поля в полях package.json, repository и publishConfig.

Добавление этих двух полей заработало корректно (обратите внимание, что поле repository используется в развернутом виде, со свойством directory)

"repository": {
  "type": "git",
  "url": "ssh://[email protected]/__user__/__repo-name__.git",
  "directory": "packages/__new-package-name__"
},
"publishConfig": {
  "registry": "https://npm.pkg.github.com/"
}
person Renato Rodrigues    schedule 16.06.2021

Если вы публикуете из среды Ubuntu, сначала выполните аутентификацию с помощью npm login, а затем просто выполните

sudo npm publish
person Franz    schedule 22.06.2020