НОВОЕ 📢 Ограниченное стартовое предложение: скидка до 70% на первый месяц для любой игры!Посмотреть тарифы

Как запустить Discord-бота на TypeScript

Хостинг Discord-ботовUpdated Oct 23, 20263 min read

Бота на TypeScript можно запустить на сервере для ботов Node.js двумя способами.

Вариант 1: запуск файла .ts напрямую

Укажите в Основной файл свой файл TypeScript, например src/index.ts, в разделе Настройки, Настройки игры. Основной файл, оканчивающийся на .ts, запускается через tsx, поэтому компилировать не нужно. Загрузите папку src, package.json и tsconfig.json. Укажите в package.json все пакеты, которые импортирует ваш код, включая typescript и пакеты типов, если они нужны коду.

Это самый простой вариант. Запуск немного медленнее, чем у скомпилированного JavaScript.

Вариант 2: сначала скомпилировать, затем запустить JavaScript

  1. Соберите проект на своём компьютере командой npx tsc.
  2. Загрузите скомпилированную папку (например, dist) и package.json.
  3. Укажите в Основной файл значение dist/index.js.

Так бот стартует быстрее и использует чуть меньше памяти. Не забывайте пересобирать и загружать проект каждый раз, когда меняете код.

Частые проблемы

  • Cannot find module: в package.json нет какого-то пакета. Добавьте его туда или в поле Доп. пакеты npm (необязательно).
  • ERR_MODULE_NOT_FOUND с модулями ES: относительным импортам нужно расширение файла, когда задано "type": "module". В импортах TypeScript используйте ./util.js (скомпилированное имя).
  • SyntaxError: Cannot use import statement outside a module: файл использует import, но Node считает его CommonJS. Задайте "type": "module" в package.json или скомпилируйте в CommonJS.
  • Отсутствующие типы при запуске не останавливают tsx. Ошибки типов важны, только когда вы сами запускаете tsc.

Связанные статьи: Как запустить Discord-бота на Node.js, Как сделать Discord-бота на discord.js.

Ваш сервер уже у другого хостинга? Перенесите его к нам

СОЗДАЙТЕ СВОЙ ИГРОВОЙ СЕРВЕР
ГОТОВЫ НАЧАТЬ?

Сэкономьте до 30% на вашем новом игровом сервере.
Премиальная производительность, мгновенная активация и непревзойдённая надёжность по лучшей цене.

ПОСЛЕДНИЕ БЛОГИ