npm publish дает "пакеты с незаданной областью не могут быть приватными"
Я хочу опубликовать нормальный, публичный пакет для npm. Когда я делаю npm publish я получаю:
npm ERR! publish Failed PUT 400
npm ERR! code E400
npm ERR! unscoped packages cannot be private : my-package
Ответ 1
Похоже, что (по состоянию на ноябрь 2018 года) вы должны сделать:
npm publish --access public
Это говорит реестру npm, что вы хотите, чтобы ваш пакет был доступен для скачивания всеми. Раньше это было по умолчанию, и из документации все еще должно быть, так что, вероятно, это просто ошибка в npm. Есть еще немного не очень хорошо написанной документации о пакетах scoped/unscoped и public/private.
Вместо использования --access вы также можете добавить параметр в свой package.json, как показано в ответе @smnbbrv ниже. Но если я прав, и это просто ошибка, вы можете использовать --access как временное решение.
Ответ 2
Со всеми кредитами на @mb21 и его решением есть небольшое дополнение к его ответу.
Предлагаемый
npm publish --access public
работает отлично. Однако не всегда возможно заставить его работать в среде CI, например, когда вы используете семантическую версию. Правильное решение там будет использовать тот же параметр access но внутри вашего package.jsonpublishConfig (кстати, это также облегчает публикацию вручную в будущем):