Написать данный пост меня побудил провал, который произошёл со мной на тестовом дне в одной фирме до самоизоляции. Они хотели набрать сотрудников до режима, поэтому устраивали тестовые дни (в моём случае пару часов после работы). В обычном собеседовании вам такого не предложат, а мне пришлось на чистом компе разворачивать буквально всё, а т.к. я не работал с 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.
Комментариев нет :
Отправить комментарий