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

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

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

Deno запускает TypeScript как есть и загружает пакеты npm прямо из ваших импортов. Чтобы запустить бота на Deno:

  1. Смените тип: на странице Бот, в разделе Код, нажмите Изменить, что запускается рядом с полем Среда выполнения и выберите Deno Bot.
  2. Загрузите свои файлы в Files.
  3. Проверьте Файл запуска (по умолчанию main.ts) на странице Бот, в разделе Код.
  4. Вставьте токен в разделе Discord и нажмите Подключить.
  5. Нажмите Запустить и следите за Console.

1. Смените тип на Deno Bot

На странице Бот, в разделе Код, нажмите Изменить, что запускается рядом с полем Среда выполнения и выберите Deno Bot. На компьютере то же окно открывает метка типа вверху страницы (например, Node.js Bot). Не ставьте галочку Удалить мои файлы и начать с чистого листа., чтобы файлы остались. См. Как переключить бота на другой язык. Установка скачивает Deno на ваш сервер.

2. Добавьте свой код

Загрузите свои файлы .ts (и deno.json, если он у вас есть) в Files: заархивируйте папку в zip, загрузите, отметьте архив и нажмите Распаковать. Или выберите источником Git-репозиторий в разделе Код: Как развернуть и обновлять Discord-бота из GitHub.

3. Задайте, как он запускается

  • Файл запуска (карточка Как он запускается): по умолчанию main.ts, например src/bot.ts.
  • Версия Deno (карточка Настройки): latest или номер релиза, например 2.5.4.

Поля Пакеты здесь нет: Deno скачивает то, что названо в ваших импортах (npm:, jsr: или URL), при первой загрузке и сохраняет для последующих запусков.

Раздел «Код» бота на Deno с файлом запуска main.ts и карточкой «Настройки» с полем «Версия Deno».

4. Вставьте токен и запустите

В разделе Discord вставьте токен и нажмите Подключить. Нажмите Запустить и откройте Console. Вы увидите версию Deno, например [PlayNHost] Deno 2.5.4, затем [PlayNHost] Starting your bot. Бот работает через deno run -A: все разрешения выданы внутри вашего собственного сервера, поэтому флаги --allow не нужны. Его память ограничена 80 процентами памяти вашего тарифа.

Минимальный бот на Deno с discord.js

main.ts

import { Client, Events, GatewayIntentBits } from "npm:discord.js@14";

const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.once(Events.ClientReady, (c) => {
  console.log(`Logged in as ${c.user.tag}`);
});

client.login(Deno.env.get("DISCORD_TOKEN"));

Первый запуск скачивает discord.js, поэтому занимает чуть больше времени. Строка Logged in as переключает метку на странице Обзор на Онлайн в Discord. Можно также использовать discordeno, библиотеку, созданную для Deno.

Как сменить версию Deno

Deno скачивается при установке сервера. Чтобы запустить другой релиз:

  1. В разделе Код, в карточке Настройки, задайте Версия Deno номером релиза, например 2.5.4, и нажмите Сохранить.
  2. Перезапустите бота. Консоль покажет [PlayNHost] The Deno version changed to v2.5.4. и [PlayNHost] Downloading Deno v2.5.4, а затем запустит вашего бота с этой версией.

latest оставляет уже скачанный релиз и сама не обновляется. Чтобы перейти на самый новый релиз, либо впишите его номер, либо оставьте latest и нажмите Переустановить внизу раздела Код: установка скачает Deno заново, а ваши файлы останутся.

При перезапуске ничего не происходит? На вашем сервере всё ещё старый стартовый скрипт, который читает версию только при установке. Один раз нажмите Переустановить: он установит заданную вами версию и самый новый стартовый скрипт.

Если консоль пишет, что Deno скачать не удалось, проверьте, что введённая вами версия действительно существует среди релизов Deno, в разделе Код в карточке Настройки, Версия Deno, затем снова нажмите Запустить.

Другие строки консоли

СтрокаЧто делать
[PlayNHost] Your bot is not set up yet: the main file main.ts was not found.Загрузите свои файлы или впишите в Файл запуска настоящее имя и папку.
Ошибка импорта пакета npm: или jsr:Проверьте название и версию пакета в импорте.

Ключи и пароли хранятся в разделе Окружение и читаются через Deno.env.get: Как задать переменные окружения и секреты. TypeScript на других типах: Как запустить Discord-бота на TypeScript.

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

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