Tact CLI: установка и первая компиляция

Установишь @tact-lang/compiler, скомпилируешь простой .tact-файл и проверишь артефакты сборки.

Зачем отдельный Tact CLI

В Blueprint компилятор уже внутри проекта. Отдельный Tact CLI нужен, когда хочешь быстро проверить .tact без полного цикла blueprint build, или зафиксировать версию компилятора явно.

На момент публикации: @tact-lang/compiler@1.6.13. Node.js ≥ 18, рекомендуется 22.


Установка

В каталоге проекта (предпочтительно — не глобально):

bash
# @tact-lang/compiler 1.6.13
npm i -D @tact-lang/compiler@1.6.13

npx tact --version
# ожидаешь строку с 1.6.13

Глобально (если нужен tact в PATH):

bash
npm i -g @tact-lang/compiler@1.6.13
tact --version

Первая компиляция

Создай файл hello.tact:

tact (fallback highlight)
// @tact-lang/compiler 1.6.13
contract Hello {
    receive() { }

    get fun greeting(): String {
        return "hola";
    }
}

Скомпилируй:

bash
npx tact hello.tact

Рядом появятся артефакты (.boc, отчёт, TypeScript-wrapper — набор зависит от флагов/конфига). Проверка: команда завершилась с кодом 0, в выводе нет Error.

Свой каталог вывода:

bash
npx tact hello.tact --output ./out

В Blueprint-проекте обычно не вызывают tact вручную — там:

bash
npx blueprint build

Обновить компилятор в существующем Blueprint-проекте:

bash
npm i -D @tact-lang/compiler@1.6.13

Как это работает

  • tact — CLI из пакета @tact-lang/compiler; тянет стандартную библиотеку Tact.
  • На вход — .tact (или проект с tact.config.json); на выход — BoC кода, ABI/отчёт, TS-обёртки.
  • Версия компилятора влияет на синтаксис и exit codes — фиксируй её в package.json, не полагайся на «latest» в CI без pin.

Частые ошибки

tact: command not found → пакет не установлен или нет npx. Используй npx tact из каталога с node_modules.

Код с синтаксисом новее/старше установленной версии → ошибка парсера. Сверь npx tact --version с примерами в доке; для gramdocs ориентир — 1.6.x.

Компилируешь внутри contracts/, но смотришь build/ Blueprint → ручной tact пишет рядом с файлом (или в --output). build/Имя/ заполняет только blueprint build.


Что дальше

Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация