Інструменти робочого простору

Flutter DevTools

У DevTools уже є мережева вкладка, таймлайн, інспектор віджетів і профайлер памʼяті — і це Flutter-вебзастосунок, який віддається з вашої ж машини. Тому Gitcito нічого з цього не переписує і сам із Dart VM Service не розмовляє: він помічає адресу і вбудовує її.

DevTools у вкладці Gitcito

flutter run друкує рядок, щойно VM service піднявся:

The Flutter DevTools debugger and profiler on iPhone 16 Pro is available at:
http://127.0.0.1:9100?uri=http://127.0.0.1:53412/uJ8k=/

Сесія запуску стежить за власним виводом, і на панелі зневадження зʼявляється кнопка. Клац — і DevTools відкривається на самому репозиторії, одним із його значків, а не окремою вкладкою. По значку на сесію: два запущені застосунки це два DevTools.

Гарячий перезапуск публікує нову адресу, і панель іде за нею, доки жива її сесія. Коли сесія зникає, панель тримає останню адресу, зазвичай уже мертву: закрийте значок і відкрийте DevTools із нового запуску.

Які інструменти

Інструмент потрапляє сюди, якщо робить дві речі: віддає вебінтерфейс на цій машині й друкує свою адресу.

Інструмент Рядок, який він друкує
Flutter DevTools The Flutter DevTools … is available at: <url>
Dart DevTools (dart devtools) Serving DevTools at <url>
Vue DevTools (@vue/devtools) Vue Devtools … listening on <url>
Prisma Studio Prisma Studio is up on <url>
Drizzle Studio Drizzle Studio is up and running on <url>
webpack-bundle-analyzer Webpack Bundle Analyzer is started at <url>
усе інше, де названо DevTools і адресу підпадає під загальний шаблон

Що вбудувати не можна і чому. Інспектор Node друкує ws://-ендпоінт, до якого чіпляється зневаджувач, а не сторінку, — а парний до нього фронтенд Chrome DevTools живе за URL devtools://, який вбудованому вигляду завантажувати не дозволено. Окрема збірка React DevTools — це власне вікно застосунку, а не віддана сторінка. Ні те, ні інше тут вкладкою бути не може: обом потрібен клієнт зневаджувального протоколу, а не адреса.

Дев-сервер це не дев-тул. Vite на :5173 — це ваш застосунок, і вбудувати його означало б зробити панель попереднього перегляду: інша функція, свідомо не ця.

Що йому дозволено

Вбудований вигляд тримають на короткому повідку — застосунок зберігає облікові дані:

  • Лише loopback. 127.0.0.1, localhost, ::1. Вбудовування будь-якої іншої адреси відхиляється, як і перехід на неї.
  • Жодного preload, node integration вимкнено, ізоляція контексту ввімкнена. Сторінка не має містка всередину Gitcito.
  • Посилання відкриваються у справжньому браузері, у звичайному вікні, а не в панелі.

Обмеження

  • Це DevTools, а не наша робота. Що вміє та версія — вміє й панель; чого не вміє, не вміємо й ми. Мережевої вкладки «від Gitcito» немає.
  • Так оголошується лише Flutter. Звичайна програма на Dart друкує URL VM service, але не адресу DevTools — і кнопка не зʼявляється.
  • Порожня панель означає, що застосунок зупинився. DevTools віддає застосунок, що працює; коли він завершується, адреса перестає відповідати.

Див. також: Запуск і зневадження

Покращити цей переклад на GitHub