Пропаганда

понедельник, 27 апреля 2020 г.

Частный npm прокси репозиторий или как зарегистрироваться в нём

Написать данный пост меня побудил провал, который произошёл со мной на тестовом дне в одной фирме до самоизоляции. Они хотели набрать сотрудников до режима, поэтому устраивали тестовые дни (в моём случае пару часов после  работы). В обычном собеседовании вам такого не предложат, а мне пришлось на чистом компе разворачивать буквально всё, а т.к. я не работал с git через ssh с использованием pgp для меня это превратилось в целый стресс-тест. На собеседовании не предложат, но в первый рабочий день обязательно, поэтому об этом стоит хотя бы знать, чтобы не фрустрировать свыше меры.

Когда я с горем пополам развернул проект с гитлаба и он не запустился, оказалось, что у них используется частный npm репозиторий и поскольку я ничего про это не знал мне пришлось расплакаться, когда меня попросили в нём зарегистрировать, чтобы мне могли выдать права на чтения, ведь именно в отсутсвии их самых и заключалась ошибка не позволившая запустить развёрнутый мной с таким трудом этот злощастный тестовый проект. Я  оказался слишком начинающим для них, о чём я получил соответствующий commit и я получил push за дверь. Сейчас, когда я погуглил вопрос, я понимаю, что это и в правду так. Но тогда я об этом не знал, как и много того, о чём не думал. Ведь как можно о чём то думать, если ты это не знаешь...



Оказывается, можно зарегистрировать на сайте https://npmjs.org и залогинеться в репозитории в консоли с помощью npm следующей командой:

       npm login

Это позволит публиковать свои пакеты в публичном репозитории https://registry.npmjs.org
У частных репозиториев нет такой страницы, где можно зарегистрироваться, поэтому используется следующая консольная команда:

      npm adduser [--registry]

Если бы я только  на собеседовании выполнил эту команду, тогда мне специально обученный человек выдал бы права на чтение репозитория и сейчас бы я писал о чём то ином.

Теперь немного про публикацию в частном репозитории на примере Verdaccio. 


Узнав что можно публиковать пакеты в репозитории и тем более установить свой частный репозиторий, я конечно, как порядочный девелопер, так и поступил. Я установил бесплатный репозиторий verdaccio. Сделать это на редкость просто и работать он начинает без каких-то дополнительных настроект. Единственное, чтобы иметь возможность публиковать приватные (частные) пакеты, нужно поднастроить права доступа, настройки которых я не буду касаться.

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

      npm install @mozg3000/datastructures --registry http://iluka.ru:4873

и использовать в проекте:
import {Stack, Queue, List} from '@mozg3000/datastructures';

Что же касается публикации в частном репозитории публичных scoped пакетов, то это делается так.
С начала нужно инициализировать проект командой

    npm init --scope=@mozg3000

Если же вы хотите опубликовать уже готовый проект, то нужно просто в файле package.json значение ключа name задать в виде @mozg3000/datastructures вместо datastructures.

Теперь публичный scoped пакет можно опубликовать так:

      npm publish --access public

И каждый раз при повторной публикации с какими-то изменениями нужно менять версию пакета в package.json в ключе version.

Комментариев нет :

Отправить комментарий