Примечание: спасибо npm, сделавшему это возможным, и за их отличную поддержку.

Вы можете быть удивлены, узнав, что я разрабатываю server.js под именем npm server, поэтому я могу указать пользователям, чтобы они просто выполняли npm install server. Подождите, разве этот пакет еще не забрали?

Фактически это было; Несколько лет назад была опубликована версия 0.0.3. Но Споры о названиях пакетов npm довольно четко об этом говорят:

«Некоторые вещи запрещены и будут удалены без обсуждения, если они будут доведены до сведения администраторов реестра npm, в том числе, помимо прочего: […]« Присечение »имени пакета, которое вы планируете использовать, но на самом деле не используют. […] Помещение пустых пакетов в реестр ».

Из-за того, что автор и разработчики не использовали его, npm решила передать его, когда оригинальный автор не ответил на мои электронные письма. Посмотрим, как это сделать.

У пакета есть имя

Прежде всего, мы должны определить имя пакета, который мы могли бы использовать. Мое практическое правило - попытаться найти пакет, который соответствует большинству из них:

  • Нестабильный: последняя версия в нижнем 0.x или даже в 0.0.x. Это означает, что пакет все еще помечен как в разработке. Согласно семверому руководству , поэтому работа не должна использоваться кем-либо в производстве.
  • Неактивен: пакет не получал каких-либо значительных обновлений в течение многих лет, а это означает, что авторов, вероятно, уже давно нет или им все равно.
  • Не используется: количество установок за неделю невелико; они никогда не будут равны 0, так как есть много кешей и поисковых роботов, просто устанавливающих их (менее 10 в неделю - хорошее число). Вы же не хотите ломать пакеты, используемые тысячами разработчиков.
  • Тривиально: в пакет вложено не так много работы. Это больше вызывает уважение, потому что кто-то вложил в это много труда.

Я нахожу эту информацию с помощью взлома URL, написав https://npmjs.com/package/NAME для точного соответствия, но функциональность поиска за последние годы значительно улучшилась, так что вы также можете использовать это.

В ранних версиях npm происходило что-то странное, поэтому имя чувствительно к регистру; вам нужно будет проверить имя в нижнем регистре, так как в настоящее время это единственное поддерживаемое имя.

Получить пакет

Большой! Вы нашли удивительное название пакета, которое соответствует большинству пунктов, упомянутых выше. Цитируемая политика разрешения споров предусматривает автоматическое удаление пакета, но мы также можем захотеть использовать имя, которое не нарушает условий. Пришло время надеть нашу шляпу для людей.

Это просто и хорошо объяснено: напишите по электронной почте человеку, у которого есть текущий пакет. Большинство людей на самом деле легко убедить, поэтому просто спросите вежливо и укажите вескую причину (название идеально подходит для пакета, который вы завершаете). Персонал CC npm, так что в любом случае она будет решена в течение 1-2 месяцев.

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

Следующие шаги

Npm может попросить вас опубликовать версию 1.x, чтобы избежать возможных проблем с совместимостью. Однако вы можете обойти это и пока не запускать официальную сборку, используя сначала 1.0.0-alpha.1 версии.

Дайте мне знать, если у вас появится отличное имя или возникнут вопросы! Также ознакомьтесь с server.js, чтобы легко создать полноценный сервер Node.js с npm install server и:

// index.js
// Include it and extract some methods for convenience
const server = require('server');
const { get, post } = server.router;

// Launch server with some options and a couple of routes
server({ port: 8080 },
  get('/', () => 'Hello world'),
  post('/', ctx => console.log(ctx.data))
);