# πŸ“¦ Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² 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`)