137 lines
4.0 KiB
Markdown
137 lines
4.0 KiB
Markdown
# 📦 Инструкция по публикации в NPM
|
||
|
||
## Подготовка к публикации
|
||
|
||
### Шаг 1: Авторизация в NPM
|
||
|
||
```bash
|
||
npm login
|
||
```
|
||
|
||
Введите credentials для аккаунта с доступом к организации `@grom13`.
|
||
|
||
### Шаг 2: Сборка проекта
|
||
|
||
```bash
|
||
cd /home/gromov/projects/my/dvc-cli
|
||
npm run build
|
||
```
|
||
|
||
Эта команда выполнит:
|
||
- Сборку библиотеки в `dist/`
|
||
- Генерацию TypeScript деклараций (`.d.ts`)
|
||
- Сборку CLI бинарника в `bin/cli.js`
|
||
|
||
### Шаг 3: Проверка перед публикацией (опционально)
|
||
|
||
```bash
|
||
# Посмотреть какие файлы будут опубликованы
|
||
npm pack --dry-run
|
||
|
||
# Или создать тестовый архив для проверки
|
||
npm pack
|
||
# Это создаст файл grom13-dvc-cli-0.1.0.tgz
|
||
```
|
||
|
||
## Публикация
|
||
|
||
### Шаг 4: Публикация в NPM
|
||
|
||
```bash
|
||
npm publish --access public
|
||
```
|
||
|
||
⚠️ **Важно:** Флаг `--access public` обязателен для scoped пакетов (`@grom13/...`), иначе NPM попытается опубликовать как приватный пакет (требует платную подписку).
|
||
|
||
### Шаг 5: Проверка публикации
|
||
|
||
```bash
|
||
# Проверить что пакет доступен
|
||
npm view @grom13/dvc-cli
|
||
|
||
# Протестировать установку через npx
|
||
npx @grom13/dvc-cli --help
|
||
|
||
# Или установить глобально и протестировать
|
||
npm install -g @grom13/dvc-cli
|
||
dvc --help
|
||
```
|
||
|
||
## Обновление версии
|
||
|
||
Для будущих релизов используйте команды версионирования:
|
||
|
||
```bash
|
||
# Patch версия (0.1.0 → 0.1.1) - исправления багов
|
||
npm version patch
|
||
|
||
# Minor версия (0.1.0 → 0.2.0) - новые функции
|
||
npm version minor
|
||
|
||
# Major версия (0.1.0 → 1.0.0) - breaking changes
|
||
npm version major
|
||
```
|
||
|
||
После обновления версии:
|
||
|
||
```bash
|
||
npm publish --access public
|
||
```
|
||
|
||
## Откат публикации (если нужно)
|
||
|
||
```bash
|
||
# Удалить конкретную версию (в течение 72 часов)
|
||
npm unpublish @grom13/dvc-cli@0.1.0
|
||
|
||
# Удалить весь пакет (использовать осторожно!)
|
||
npm unpublish @grom13/dvc-cli --force
|
||
```
|
||
|
||
⚠️ **Внимание:** После unpublish нельзя повторно опубликовать ту же версию. Нужно увеличить версию.
|
||
|
||
## Использование после публикации
|
||
|
||
Пакет будет доступен для использования:
|
||
|
||
```bash
|
||
# Через npx (без установки)
|
||
npx @grom13/dvc-cli video.mp4 ./output
|
||
|
||
# Глобальная установка
|
||
npm install -g @grom13/dvc-cli
|
||
dvc video.mp4 ./output
|
||
|
||
# Локальная установка в проект
|
||
npm install @grom13/dvc-cli
|
||
```
|
||
|
||
## Troubleshooting
|
||
|
||
### Ошибка: "You must sign up for private packages"
|
||
|
||
Решение: Добавьте флаг `--access public` при публикации.
|
||
|
||
### Ошибка: "You do not have permission to publish"
|
||
|
||
Решение: Убедитесь что вы авторизованы (`npm whoami`) и имеете доступ к организации `@grom13`.
|
||
|
||
### Ошибка при сборке
|
||
|
||
Решение: Убедитесь что установлены все зависимости:
|
||
```bash
|
||
npm install
|
||
# или
|
||
bun install
|
||
```
|
||
|
||
## Checklist перед публикацией
|
||
|
||
- [ ] Обновлена версия в `package.json`
|
||
- [ ] Обновлен `README.md` с актуальной информацией
|
||
- [ ] Проект успешно собирается (`npm run build`)
|
||
- [ ] Протестирован CLI локально
|
||
- [ ] Авторизованы в NPM (`npm whoami`)
|
||
- [ ] Проверены файлы для публикации (`npm pack --dry-run`)
|
||
|