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`)
|
|||
|
|
|