Сборка и поставка

WASM и песочница

Выберите между песочницей, Raw Web, Worker и управляемым Web Application.

Топаз использует WebAssembly в продуктах с разными владельцами и границами доверия. Сначала выберите продукт, затем команду.

1. Песочница Playground: первый эксперимент в браузере

Песочница сайта позволяет редактировать, проверять и запускать небольшую программу на Топазе без установки CLI. Браузер загружает WebAssembly компилятора и интерпретатора внутрь Worker. Это подтверждает интерактивный эксперимент с исходником, а не развёрнутое приложение или неограниченный доступ к браузеру.

Чтобы провести тот же эксперимент с установленным CLI, начните с раздела Первая программа.

2. Raw Web: существующая среда вызывает Топаз

Выбирайте Raw Web, если существующая среда модулей ES на JavaScript владеет интерфейсом и вызывает выбранные экспортированные функции Топаза.

BASH
topaz build --target web main.tpz --release --out-dir web-product

Продукт содержит topaz-web.js, topaz-web.d.ts, topaz-web.wasm и общие файлы артефакта. Импортируйте instantiateTopaz из созданного модуля и раздавайте каталог по HTTP. Среда должна соблюдать созданный типизированный ABI.

3. Worker: тот же ABI вне главного потока

Выбирайте Worker, если существующей среде также нужен созданный транспорт запросов и ответов вокруг Raw Web.

BASH
topaz build main.tpz --target web-worker --release --out-dir worker-product

В продукт добавляются topaz-web-worker.js и topaz-web-worker-client.js. Это не создаёт интерфейс и не даёт новых полномочий; среда JavaScript по-прежнему владеет обоими.

4. Управляемое Web Application: интерфейс принадлежит Топазу

Выбирайте web-app, если Топаз владеет моделью, сообщениями, обновлением, представлением и объявленными полномочиями браузера.

BASH
topaz init --target web-app --root hello-web
topaz lock --root hello-web
topaz check --root hello-web --locked
topaz test hello-web/tests/app.tpz --root hello-web --locked
topaz dev --root hello-web --port 8000
topaz build --root hello-web --locked --release --out-dir web-app-product

Эта пакетная цель создаёт полный статический продукт с index.html, проверенной средой topaz-app.js, файлами Raw Web, метаданными полномочий и объявленными стилями или ресурсами. topaz dev работает только на адресе обратной петли и не является производственным сервером.

Требования и восстановление

Для сборок Raw Web, Worker и управляемого веб-приложения нужен Rust с целью wasm32-unknown-unknown. Готовому браузерному продукту не нужны CLI Топаза и Rust. Раздавайте его по HTTP: непосредственная загрузка модулей ES и WASM через file:// не является поддерживаемым путём.

Если браузер сообщает о несовпадении среды и файлов поддержки выполнения, разверните полный каталог одной сборки вместо смешивания старого JavaScript с новым WASM. Если управляемый каталог вывода изменился, сохраните его и соберите продукт в новом пустом каталоге.

Связанная документация