FunC CLI: установка и первая компиляция
Скомпилируешь FunC через @ton-community/func-js (рекомендуемый путь) и поймёшь, когда нужен нативный func.
Два способа компилировать FunC
FunC — низкоуровневый язык контрактов TON. На практике есть два пути:
@ton-community/func-js(WASM) — работает на macOS/Linux/Windows, так компилирует Blueprint.- Нативный
func— бинарник из сборки TON; нужен реже (кастомные пайплайны, Fift вручную).
Для старта бери func-js. На момент публикации: @ton-community/func-js@0.11.0.
Компиляция через func-js
Минимальный контракт echo.fc (нужен stdlib.fc из стандартной библиотеки FunC — в Blueprint он уже в проекте):
Скрипт компиляции compile.mjs:
В Blueprint то же самое делает одна команда:
Нативный func (опционально)
Нужен, если собираешь toolchain из исходников TON или вызываешь func/fift вне Node. На Windows проще через WSL2. После установки бинарников в PATH:
Флаг -SPA подключает стандартную библиотеку и обрабатывает импорты. Без корректного stdlib.fc компиляция падает сразу.
Как это работает
- FunC → Fift-ассемблер → BoC с кодом контракта.
func-jsгоняет тот же компилятор в WebAssembly внутри Node — результат совместим с нативнымfunc.- Blueprint читает
wrappers/*.compile.ts(lang: 'func',targets: [...]) и вызывает func-js за тебя.
Частые ошибки
Нет stdlib.fc в sources → ошибка на первой же стандартной функции. Скопируй stdlib из шаблона Blueprint (func-counter) или укажи путь к нему.
Смешиваешь FunC 0.4.x stdlib с другим набором файлов → странные undeclared identifier. Держи stdlib из того же шаблона, что и проект.
Ищешь отдельный npm-пакет func-cli → его нет как единого продукта. Либо Blueprint/func-js, либо нативные бинарники TON.
Что дальше
- Tact CLI: установка и первая компиляция — если нужен высокоуровневый язык
- TON Sandbox: локальное тестирование — прогон скомпилированного кода без сети
- Blueprint: создание нового проекта — шаблон
func-counterпод ключ
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация