Перейти до вмісту

Scripts

Проект включає різноманітні скрипти, призначені для покращення вашого досвіду розробника. Ви можете запустити будь-який скрипт за допомогою вашого терміналу. Зверніть увагу, що деякі CLI-скрипти можуть вимагати налаштування висоти вікна вашого терміналу, щоб уникнути аномалій інтерфейсу. Relivator дозволяє використовувати наступні можливості:

  1. 💪 Нативні скрипти: Це команди, сконфігуровані у package.json і запускаються менеджером пакетів, наприклад pnpm, [bun ](https://bun .sh), yarn або npm. Ви можете запустити ці «рідні» скрипти за допомогою команд типу bun [dev|build] і bun db:[push|studio].
  2. ⚙️ Спеціальні скрипти: Ці скрипти написані на TypeScript та Python командою Reliverse та спільнотою і здебільшого знаходяться у теці addons. 🔥 Будь ласка, будьте обережні при використанні скриптів перетворення, оскільки всі вони знаходяться в початкових версіях. Переконайтеся, що ви зафіксували ваші зміни у вашому постачальнику контролю версій (наприклад, GitHub) перед використанням будь-якого з них. Вони можуть бути виконані через командний рядок за допомогою [appts|addons|reli|lint|fix]:* або вручну за допомогою bun шлях/до/файлу або py шлях/до/файлу (наприклад, py addons/scripts/reliverse/relimter/python/tasks/math-to-mathjs.py).
  3. 🐍 Python Script Manager: Може бути запущений за допомогою reli:manager або py addons/scripts/reliverse/relimter/python/index.py. Перед запуском, будь ласка, прочитайте розділ 🐍 Python нижче, щоб дізнатися, як підготувати робочий простір для запуску цього менеджера.

package.json

Нижче наведено кілька скриптів, налаштованих у розділі cripts файлу package.json (наведений нижче текст може бути застарілим, будь ласка, повідомте нам, якщо ви знайдете якісь неточності):

  • bun appts / bun appts:putout / bun appts:verbose / bun appts:nobuild: Ці команди виконують комплексну перевірку кодової бази. Вони послідовно запускають bun knip для різних перевірок кодової бази, bun format для форматування коду за допомогою Biome (або Prettier, що скоро буде випущено), і bun lint для лінтування за допомогою Biome і ESLint (bun lint:eslint). Накладання ворсу може зайняти деякий час, тому будьте терплячі. Команда bun appts:putout також запускає bun lint:putout. Використання bun appts:verbose показує детальний прогрес роботи ESLint, що може бути корисним, якщо ви підозрюєте, що ESLint застряг (він може бути повільним, а не застрягнути). Ви можете вирішити проблеми вручну, натиснувши Ctrl+S кілька разів у VSCode, доки на вкладці «Проблеми» не буде жодної проблеми. Зазвичай, проблеми вирішуються на другому або третьому запуску. Якщо деякі специфічні проблеми не зникають, це може означати, що вони не були виправлені автоматично. Будь ласка, спробуйте виправити їх вручну, зв’яжіться з нами або вимкніть правило. Багато правил у eslint.config.js вимкнено за замовчуванням; увімкніть лише ті, що вам потрібні. Ви також можете запустити bun reli:setup і вибрати пресет RulesDisabled, якщо ви хочете вимкнути всі правила «помилки» і «попередження» одночасно. Потім bun appts запускає bun typecheck на наявність помилок TypeScript і bun run build, але ви можете спробувати bun turbo:appts, який запускає bun turbo:build для пришвидшення збирання за допомогою Turborepo v2. Зауважте, що bun turbo:appts є швидшою, інтерактивною версією appts, але може не працювати належним чином з терміналом VSCode. Крім того, ви можете скористатися bun appts:nobuild, який виконує лише перевірку, лінтування, форматування і виправлення, без збирання.
  • bun fix:putout-unstable: Putout - це лінтер і форматор. У той час як форматор виправляє проблеми, про які повідомляє лінтер, команда fix:putout-unstable також вносить зміни, які не були помічені лінтером. Переконайтеся, що ви зафіксували ваш код перед виконанням цієї команди, оскільки вона може спричинити неочікувані зміни. Після запуску перегляньте і відкоригуйте зміни у вашій кодовій базі за допомогою VSCode Source Control (Cmd/Ctrl+Shift+G) або GitHub Desktop.
  • bun db:[push|studio|generate|migrate]: push перетворює схему TypeScript Drizzle на SQL і надсилає її за адресою DATABASE_URL; studio запускає Drizzle Studio на https://local.drizzle.studio; migrate застосовує міграції, згенеровані командою generate (можливо, ця команда вам більше не знадобиться), на основі файлу drizzle.config.ts.
  • bun stripe:listen: Запускає слухач веб-хука Stripe і допомагає налаштувати змінні середовища Stripe. Для роботи цієї команди має бути встановлено Stripe CLI.
  • bun addons: Ця команда дозволяє запускати деякі скрипти з теки addons у режимі «без голови». Багато скриптів ще не додано туди, тому, будь ласка, перевірте теку addons і запустіть їх вручну за допомогою bun шлях/до/файлу або py шлях/до/файлу. Це також стосується гри @reliverse/academy. У майбутньому вона матиме багато різних цікавих функцій. Наразі це вікторина з таблицею лідерів та досягнень, де ви можете перевірити свої знання Relivator, JavaScript, TypeScript, React і навіть ESLint.
  • reli:manager: Дізнайтеся більше в розділі 🐍 Python нижче. Це псевдонім команди py addons/scripts/reliverse/relimter/python/index.py.
  • bun latest: Оновлює усі пакунки проекту до їхніх останніх стабільних версій, включно з деякими специфічними пакунками у гілках rc/beta/alpha/next/canary до їхніх останніх версій.
  • bun reli:vscode [nothing|minimal|default|ultimate]: Покращує налаштування VSCode за допомогою пресетів від Reliverse. Цей скрипт коригує ваші файли ettings.json, extensions.json і launch.json. Він запитає підтвердження перед заміною поточних файлів. Скористайтеся RQ20, щоб дізнатися більше про .vscode-пресети і встановлення шрифтів для ultimate-пресети, або скористайтеся default-пресетою (яка не містить користувацьких шрифтів і тем). Виберіть default, minimal або nothing, якщо ваш ПК або віртуальна машина працює дуже повільно.
  • bun reli:help: Показує корисну інформацію про Relivator та Reliverse.
  • bun lint:compiler: Запускає перевірку працездатності React-компілятора. Зауважте, що React Compiler вимкнено за замовчуванням; дивіться розділ FAQ для більш детальної інформації.
  • bun tw:[v4|v3]: Перемикає між Tailwind CSS v3 та альфа-версією v4. Важливо: Після використання цієї команди відкоригуйте коментарі в postcss.config.cjs. Також: При використанні Tailwind CSS v4 видаліть або закоментуйте tailwindPlugin з eslint.config.js, оскільки він не підтримує v4. Можуть знадобитися деякі додаткові зміни в коді.
  • bun reli:prepare: Дізнайтеся більше про цей скрипт у попередньому розділі (Cmd/Ctrl+F «Рекомендується»).
Terminal window
# bun reliverse.config.ts --details
Фреймворк: Relivator v1.2.6 Рушій: Reliverse v0.4.0 Гаряча лінія: https://discord.gg/Pb8uKbwpsJ
Блог про реліз Relivator v1.2.6 👉 https://reliverse.org/relivator/v126
Допоможіть Relivator стати ще кращим! Будь ласка, відзначте репо - https://github.com/blefnk/relivator
Для досвідчених користувачів: запустіть 'bun reli:prepare', щоб оновити всі залежності до останніх версій і перевірити, чи не потребує код коригувань.
Дотримуйтесь стандартів якості: запустіть 'bun appts' та 'bun fix:putout-unstable', щоб виправити лінтування, форматування та інше.
Нестабільність: спробуйте «bun turbo:dev» та швидшу збірку за допомогою «bun turbo:build»: https://turbo.build/repo
Компілятор reactCompiler увімкнено в next.config.js - тепер він використовує webpack, тому збірка триває довше.
Clerk: переконайтеся, що ви підключили домен в панелі управління Clerk, щоб сервіси, такі як PageSpeed, працювали.
Будь ласка, знайдіть відповідь на питання 21 у розділі поширених запитань на README.md. Скопіюйте адаптовані bun-скрипти і замініть поточні в package.json - скрипти для інших менеджерів пакунків будуть незабаром.

Python

👋 Привіт, друже! Приємно бачити тебе тут! У мене (@blefnk Назар Корнієнко) є мрія зробити світ open-source кращим та якіснішим. Я прагну залишити свій слід в історії, забезпечивши людям справжнє задоволення від програмування та створення якісних продуктів. Я особливо захоплений чистим кодом. Книга Роберта Мартіна «Чистий код» - це must-have! Саме тому я розробив багато інструментів у Relivator. За останні кілька місяців, що передували Relivator 1.2.6, я багато чому навчився. Щоб уникнути ручного переписування коду, я розробив уніфікований менеджер сценаріїв. Поточна версія менеджера все ще дуже нестабільна. Ви можете відвідати файл addons/scripts/reliverse/relimter/python/index.py, щоб дізнатися більше про те, як працює цей менеджер скриптів. Якщо ви хочете скористатися цим Python Script Manager (див. ⚙️ Script, щоб прочитати вступ), будь ласка, переконайтеся, що ваш робочий простір належним чином підготовлено для нього. Зауважте, що більшість скриптів здебільшого неперевірені. Перед запуском будь-якого скрипта зафіксуйте ваш код. Збільште розмір вікна терміналу VSCode, щоб уникнути збоїв у користувацькому інтерфейсі. Потрібна допомога? Відвідайте наш Discord. Виконайте наведені нижче кроки, щоб почати роботу (прокрутіть вниз, щоб дізнатися більше команд Python): ✅ Після виконання наведених вище інструкцій ви можете безпечно запустити менеджер скриптів.

  1. Встановіть Python та Ruff. Встановіть наступні розширення VSCode: Python та Ruff.
  2. Створіть нову теку .venv, натиснувши Cmd/Ctrl+Shift+P і запустивши >Python: Create Environment... (VSCode запропонує вам вибрати інтерпретатор Python; виберіть той, який було встановлено на кроці 1). Потім виберіть requirements.txt як файл залежностей пакунка.
  3. Зверніть увагу, що термінал VSCode автоматично активує середовище після кожного запуску. Ви можете перевірити це, навівши вказівник миші на кнопку [pwsh|bash|cmd] у терміналі VSCode і шукаючи щось на кшталт «Python»: Активоване середовище для .\.venv\Scripts\python.exe». Однак, якщо ви використовуєте іншу IDE або зовнішній термінал, можливо, вам доведеться активувати віртуальне середовище вручну: [Windows] .venv/Scripts/activate; [macOS/Linux] source .venv/bin/activate.
  4. Переконайтеся, що всі вимоги встановлено правильно, просто запустіть pip install -r requirements.txt. Все готово? Чудово! Вітаємо! Спробуйте запустити Python Script Manager зараз, виконавши: reli:manager або py addons/scripts/reliverse/relimter/python/index.py.

Корисні команди Python

Ми все ще працюємо над цим розділом. Наведений нижче опис може бути дещо некоректним. *Наступний опис може бути дещо некоректним.

Terminal window
# - Встановити необхідні залежності:
pip install -r requirements.txt
# - Переконайтеся, що у вас встановлено `pip-tools` для використання `pip-compile` та `pip-sync`:
pip install pip-tools
# - Ви можете створити/оновлювати файл `requirements.txt`:
pip freeze > requirements.txt
# - Синхронізація залежностей:
pip-sync requirements.txt
# - Видалити певний пакунок (наприклад, torch):
pip uninstall torch
pip freeze > requirements.txt

Зверніть увагу: якщо у вас встановлено UV і ви використали команду типу uv pip install InquirerPy і вона видає помилку на кшталт «The wheel is invalid», найпростішим рішенням буде просто скористатися звичайними командами pip, наприклад pip install InquirerPy.