Dmitry
Dmitry

Reputation: 563

Telegraf: can't use extra

Simple usage works fine:

const { Telegraf } = require('telegraf');
const bot = new Telegraf(tgBotToken);
bot.telegram.sendMessage(tgChatId, "My message");

But if I want to use HTML in my message, I need to require telegraf/extra

const { Telegraf } = require('telegraf');
const tgExtra = require('telegraf/extra');

But I get an error:

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './extra' is not defined by "exports" in C:\MyProject\node_modules\telegraf\package.json

Telegraf was installed via npm install telegraf. Running npm install telegraf/extra leads to trying to install non-existing package.

Is there any trick of installing something extra for... extra?

Upvotes: 4

Views: 3552

Answers (2)

Luídne
Luídne

Reputation: 123

In Telegraf V4, the Extra now is inside if the 'telegraf'.

Example:

const { Telegraf, Markup } = require('telegraf');

const bot = new Telegraf(tgBotToken);
bot.on('message', async ctx => {
    ctx.replyWithHTML(tgChatId, "My message", Markup.button.url('Button Name', 'https://you.url'));
})

Upvotes: 1

ArnabXD
ArnabXD

Reputation: 519

If you are using Telegraf V4 . As there changelog says , Extra has been entirely removed in V4 .

Extra is removed entirely, see #1076.
You can now just specify any options directly, without having to create an Extra instance before

Upvotes: 4

Related Questions