2026-07-13 20:08:31 +03:00
|
|
|
|
# Integration playground
|
|
|
|
|
|
|
|
|
|
|
|
Постоянные минимальные consumer-приложения для проверки генерации, typecheck,
|
|
|
|
|
|
production build и отображения внешнего SVG-спрайта в настоящем Chromium.
|
|
|
|
|
|
|
|
|
|
|
|
## Матрица
|
|
|
|
|
|
|
|
|
|
|
|
| Fixture | Генератор | Runtime |
|
|
|
|
|
|
| --- | --- | --- |
|
2026-07-14 08:34:45 +03:00
|
|
|
|
| `standalone` | `standalone` | Static HTML + явный copy SVG |
|
|
|
|
|
|
| `standalone-vite` | `standalone@vite` | Vanilla TypeScript + Vite |
|
|
|
|
|
|
| `standalone-webpack` | `standalone@webpack` | Vanilla TypeScript + Webpack 5 |
|
2026-07-13 20:08:31 +03:00
|
|
|
|
| `react-vite` | `react@vite` | React + Vite |
|
|
|
|
|
|
| `react-webpack` | `react@webpack` | React + Webpack 5 |
|
feat: добавить поддержку 20 framework exact modes
Добавлены exact modes:
- vue@vite и vue@webpack
- nuxt@vite и nuxt@webpack
- svelte@vite, svelte@webpack и sveltekit@vite
- angular@application и angular@webpack
- astro@vite
- solid@vite, solid@webpack и solid-start@vite
- preact@vite и preact@webpack
- qwik@vite
- lit@vite и lit@webpack
- alpine@vite и alpine@webpack
Для каждого mode реализованы изолированный adapter, нативный
framework-компонент, declarations, manifest, CSS и внешний asset URL.
Добавлены production integration-стенды с генерацией, typecheck,
сборкой и Playwright-проверкой рендера спрайта и Viewer.
Обновлены Viewer, RU/EN-гайды, README, technical reference и AI skills.
Итоговая матрица включает 29 exact modes.
Проверки:
- 48 unit-тестов
- 29 integration E2E-тестов
2026-07-15 16:56:44 +03:00
|
|
|
|
| `vue-vite` | `vue@vite` | Vue + Vite |
|
|
|
|
|
|
| `vue-webpack` | `vue@webpack` | Vue + Webpack 5 |
|
|
|
|
|
|
| `nuxt-vite` | `nuxt@vite` | Nuxt + Vite |
|
|
|
|
|
|
| `nuxt-webpack` | `nuxt@webpack` | Nuxt + Webpack |
|
|
|
|
|
|
| `svelte-vite` | `svelte@vite` | Svelte + Vite |
|
|
|
|
|
|
| `svelte-webpack` | `svelte@webpack` | Svelte + Webpack |
|
|
|
|
|
|
| `sveltekit` | `sveltekit@vite` | SvelteKit + Vite |
|
|
|
|
|
|
| `angular` | `angular@application` | Angular application builder |
|
|
|
|
|
|
| `angular-webpack` | `angular@webpack` | Angular + Webpack |
|
|
|
|
|
|
| `astro` | `astro@vite` | Astro + Vite |
|
|
|
|
|
|
| `solid-vite` | `solid@vite` | Solid + Vite |
|
|
|
|
|
|
| `solid-webpack` | `solid@webpack` | Solid + Webpack |
|
|
|
|
|
|
| `solid-start-vite` | `solid-start@vite` | SolidStart + Vite |
|
|
|
|
|
|
| `preact-vite` | `preact@vite` | Preact + Vite |
|
|
|
|
|
|
| `preact-webpack` | `preact@webpack` | Preact + Webpack |
|
|
|
|
|
|
| `qwik-vite` | `qwik@vite` | Qwik + Vite |
|
|
|
|
|
|
| `lit-vite` | `lit@vite` | Lit + Vite |
|
|
|
|
|
|
| `lit-webpack` | `lit@webpack` | Lit + Webpack |
|
|
|
|
|
|
| `alpine-vite` | `alpine@vite` | Alpine.js + Vite |
|
|
|
|
|
|
| `alpine-webpack` | `alpine@webpack` | Alpine.js + Webpack |
|
2026-07-13 20:08:31 +03:00
|
|
|
|
| `next-app-turbopack` | `next@app/turbopack` | App Router + Turbopack |
|
|
|
|
|
|
| `next-app-webpack` | `next@app/webpack` | App Router + Webpack |
|
|
|
|
|
|
| `next-pages-turbopack` | `next@pages/turbopack` | Pages Router + Turbopack |
|
|
|
|
|
|
| `next-pages-webpack` | `next@pages/webpack` | Pages Router + Webpack |
|
|
|
|
|
|
|
feat: добавить поддержку 20 framework exact modes
Добавлены exact modes:
- vue@vite и vue@webpack
- nuxt@vite и nuxt@webpack
- svelte@vite, svelte@webpack и sveltekit@vite
- angular@application и angular@webpack
- astro@vite
- solid@vite, solid@webpack и solid-start@vite
- preact@vite и preact@webpack
- qwik@vite
- lit@vite и lit@webpack
- alpine@vite и alpine@webpack
Для каждого mode реализованы изолированный adapter, нативный
framework-компонент, declarations, manifest, CSS и внешний asset URL.
Добавлены production integration-стенды с генерацией, typecheck,
сборкой и Playwright-проверкой рендера спрайта и Viewer.
Обновлены Viewer, RU/EN-гайды, README, technical reference и AI skills.
Итоговая матрица включает 29 exact modes.
Проверки:
- 48 unit-тестов
- 29 integration E2E-тестов
2026-07-15 16:56:44 +03:00
|
|
|
|
В verify-матрицу входят все exact modes из корневого `MODES_CHECKLIST.md`.
|
2026-07-13 20:08:31 +03:00
|
|
|
|
|
|
|
|
|
|
## Первый запуск
|
|
|
|
|
|
|
|
|
|
|
|
Из корня репозитория:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
npm ci
|
|
|
|
|
|
npm run build:package
|
|
|
|
|
|
npm run integration:install
|
|
|
|
|
|
npm exec --prefix integration -- playwright install chromium
|
|
|
|
|
|
npm run integration:verify
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
`integration:verify` последовательно выполняет генерацию, typecheck, production build
|
|
|
|
|
|
активных fixtures и Playwright smoke-тесты.
|
|
|
|
|
|
|
|
|
|
|
|
## Отдельные этапы
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
npm run integration:generate
|
|
|
|
|
|
npm run integration:build
|
|
|
|
|
|
npm run integration:test
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Для запуска команды только в одном fixture:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
feat: добавить поддержку 20 framework exact modes
Добавлены exact modes:
- vue@vite и vue@webpack
- nuxt@vite и nuxt@webpack
- svelte@vite, svelte@webpack и sveltekit@vite
- angular@application и angular@webpack
- astro@vite
- solid@vite, solid@webpack и solid-start@vite
- preact@vite и preact@webpack
- qwik@vite
- lit@vite и lit@webpack
- alpine@vite и alpine@webpack
Для каждого mode реализованы изолированный adapter, нативный
framework-компонент, declarations, manifest, CSS и внешний asset URL.
Добавлены production integration-стенды с генерацией, typecheck,
сборкой и Playwright-проверкой рендера спрайта и Viewer.
Обновлены Viewer, RU/EN-гайды, README, technical reference и AI skills.
Итоговая матрица включает 29 exact modes.
Проверки:
- 48 unit-тестов
- 29 integration E2E-тестов
2026-07-15 16:56:44 +03:00
|
|
|
|
node scripts/run-workspaces.mjs build react-vite
|
2026-07-13 20:08:31 +03:00
|
|
|
|
npm run dev --workspace @svg-sprites-fixtures/react-vite --prefix integration
|
|
|
|
|
|
```
|
|
|
|
|
|
|
feat: добавить поддержку 20 framework exact modes
Добавлены exact modes:
- vue@vite и vue@webpack
- nuxt@vite и nuxt@webpack
- svelte@vite, svelte@webpack и sveltekit@vite
- angular@application и angular@webpack
- astro@vite
- solid@vite, solid@webpack и solid-start@vite
- preact@vite и preact@webpack
- qwik@vite
- lit@vite и lit@webpack
- alpine@vite и alpine@webpack
Для каждого mode реализованы изолированный adapter, нативный
framework-компонент, declarations, manifest, CSS и внешний asset URL.
Добавлены production integration-стенды с генерацией, typecheck,
сборкой и Playwright-проверкой рендера спрайта и Viewer.
Обновлены Viewer, RU/EN-гайды, README, technical reference и AI skills.
Итоговая матрица включает 29 exact modes.
Проверки:
- 48 unit-тестов
- 29 integration E2E-тестов
2026-07-15 16:56:44 +03:00
|
|
|
|
Первую команду запускайте из каталога `integration`.
|
|
|
|
|
|
|
2026-07-13 20:08:31 +03:00
|
|
|
|
Перед E2E production builds должны существовать. Тест запускает каждый server
|
|
|
|
|
|
последовательно, проверяет внешний `href`, HTTP status и Content-Type спрайта,
|
|
|
|
|
|
наличие symbol ID, отсутствие browser errors и зелёные пиксели отрисованной иконки.
|
2026-07-14 09:54:36 +03:00
|
|
|
|
Для каждого active mode тест также открывает единый Viewer, проверяет его Shadow DOM,
|
|
|
|
|
|
совпадение sprite URL, карточку `check`, dialog и mode-specific вкладки кода.
|
2026-07-13 20:08:31 +03:00
|
|
|
|
|
2026-07-14 08:34:45 +03:00
|
|
|
|
Static fixture копирует managed SVG и JSON manifest в `dist/app-icons/` и использует
|
|
|
|
|
|
literal `<use href="/app-icons/sprite.svg#check">`.
|
|
|
|
|
|
Vite и Webpack fixtures получают URL только из generated facade и сверяют его с
|
|
|
|
|
|
resolved manifest.
|
|
|
|
|
|
|
2026-07-13 20:08:31 +03:00
|
|
|
|
## Структура
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
integration/
|
|
|
|
|
|
├── apps/ # реальные consumer package boundaries
|
|
|
|
|
|
├── fixtures/icons/ # общие исходные SVG
|
|
|
|
|
|
├── scripts/ # workspace runner и static production server
|
|
|
|
|
|
├── tests/ # Playwright runtime smoke
|
|
|
|
|
|
├── package.json # отдельный npm workspace
|
|
|
|
|
|
└── package-lock.json # зафиксированная framework matrix
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Generated-файлы, framework build outputs и Playwright artifacts исключены через
|
|
|
|
|
|
`integration/.gitignore`.
|