Skip to content

Известные проблемы по версиям SDK ​

Используйте @tv/extension-sdk 1.15.1 или новее. Эта страница — на случай, если это невозможно или модуль создан более старым выпуском: здесь, от новых к старым, перечислено, что исправил каждый выпуск из того, на что вы иначе наткнётесь, и что с этим сделать вручную. Все изменения — в журнале изменений; здесь только те, что ломают какой-либо шаг.

Проблемы бывают двух видов:

  • SDK — в CLI или библиотеке. Обновление их убирает. npx @tv/extension-sdk запускает копию из node_modules вашего модуля, поэтому обновляйте её там: pnpm add -w @tv/extension-sdk@^1.15.1.
  • Каркас — в файлах, которые записал init-module. Обновление SDK не меняет уже созданный модуль, поэтому поправьте файл, как сказано в таблице, или создайте каркас заново и перенесите в него свой код.

Исправлено в 1.15.1 ​

ВидЧто не такВ более старой версии
SDKВ Windows login падает уже после подтверждения в браузере: … longer than the platform limit of 2560 chars. Сессия больше, чем вмещает диспетчер учётных данных Windows.Используйте API-ключ с портала в TV_API_TOKEN либо задайте TV_SDK_TOKEN_STORE=file перед login и не снимайте её для всех последующих команд.
SDKsandbox connect печатает URL tv-api и токен в виде строк export. Если их применить, sandbox install --sandbox ищет песочницу в самой песочнице, с её токеном, и падает.Не применяйте их в терминале, из которого запускаете команды sandbox. Если уже применили, выполните unset TV_API_URL TV_API_TOKEN и снова экспортируйте ключ с портала.
SDKsandbox install --sandbox=… --token=tvk_… падает с 401 при регистрации манифеста: ключ с портала отправляется и в песочницу.Положите ключ с портала в TV_API_TOKEN и не передавайте --token.
SDKПосле любого 401 или 403 sandbox install печатает This is expected today: … ask for the module to be registered for you. С 2026-09-19 это неправда.Не обращайте внимания на пояснение и проверьте учётные данные по таблице Если что-то не так.
SDKsandbox create, list и connect показывают slug и organizationId только с --format=json, а create не печатает строку для запроса входа.Выполните npx @tv/extension-sdk sandbox list --format=json и пришлите нам только эти два значения. В том же выводе есть apiToken каждой песочницы, он остаётся секретом.
SDKsandbox create --help (и любая sandbox <команда> --help) отвечает Unknown flag: --help с кодом выхода 2.npx @tv/extension-sdk sandbox --help печатает справку по всем командам.
КаркасАвтономная страница (pnpm dev) становится пустой, как только Shell вызывает useQuery: No QueryClient set, use QueryClientProvider to set one.Оберните дерево в src/main.tsx в QueryClientProvider, самым внешним, как в разделе Соберите фронтенд.
КаркасВ package.json нет поля packageManager, поэтому вместо 10.18.2 запускается глобально установленный pnpm 11 и падает на свежем выпуске @tv с ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION.Добавьте "packageManager": "pnpm@10.18.2" в package.json и установите зависимости заново.
КаркасПервый pnpm install предупреждает о peer-зависимостях (i18next ^25 против react-i18next 17, @tv/ui ^1.4.1 против SDK), а pnpm lint падает с eslint: command not found.Задайте i18next ^26.2.0, поднимите @tv/ui до ^2.2.0 или удалите его, если его никто не импортирует, и удалите скрипт lint: статическая проверка — pnpm typecheck.
Каркасinit-module --external без --scope выдаёт модулю идентичность Tango Vision: id и имя пакета в @tv, автор «Tango Vision».Создайте каркас заново с --scope и --author (шаг 1) или вручную поменяйте id и author в module-manifest.json и name в package.json, сохранив часть module-<slug>.

Исправлено в 1.15.0 ​

ВидЧто не такВ более старой версии
КаркасКонтейнер федерации называется tv-module-<slug>, а платформа ищет slug в camelCase, поэтому оболочка не находит ваш модуль в его же remoteEntry.js.В vite.config.ts задайте name федерации равным slug в camelCase: hello для hello, workOrders для work-orders.
Каркасreact-router и react-router-dom не разделяются с хостом, поэтому Shell с <Routes> падает внутри Building OS: Cannot destructure property 'basename' of 'React.useContext(...)' as it is null.Добавьте оба в shared в vite.config.ts и в dependencies (^7.0.0) и оберните <Shell /> в src/main.tsx в <BrowserRouter> для автономной страницы.
КаркасКомментарий в начале src/Shell.tsx велит использовать PlatformContext из @tv/extension-sdk/react и «общий клиент axios». Первое падает внутри Building OS, второго не существует.Не следуйте ему. Используйте useSelectedBuildingId() и authorizationHeader(): Вызов API из модуля.
SDKgetAccessToken(), authorizationHeader() и resolveAccessToken() ещё нет, так что поддерживаемого способа аутентифицировать вызовы API у модуля нет.Обновите SDK. Не читайте вместо этого localStorage['access_token']: оболочка песочницы его не записывает.

Исправлено в 1.14.1 ​

ВидЧто не такВ более старой версии
КаркасМодуль, созданный версией 1.14.0, не собирается: "useQuery" is not exported by "__vite-optional-peer-dep:@tanstack/react-query:@tv/extension-sdk", и remoteEntry.js не появляется.pnpm add -w @tanstack/react-query@^5

До 1.14.0 ​

ВидЧто не такВ более старой версии
SDKНет init-module --external. CI, который он генерирует, вызывает закрытые actions Tango Vision и падает за пределами нашей организации.Обновите SDK и создайте каркас заново с --external.
SDKНет sandbox install, а в каркасе нет скриптов dev:remote / serve:remote.Обновите SDK и добавьте скрипты вручную, как в разделе Отдавайте remote со своей машины.
SDKsandbox create --type=university отклоняется с Invalid --type.Обновите SDK или используйте office либо mall.

Создано на платформе Tango Vision. Вопросы? developers@tango.vision