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-тестов
This commit is contained in:
2026-07-15 16:56:44 +03:00
parent e54ab4991c
commit 8b3365f957
378 changed files with 21188 additions and 650 deletions

View File

@@ -0,0 +1,42 @@
import path from 'node:path'
import { fileURLToPath } from 'node:url'
import { AngularWebpackPlugin } from '@ngtools/webpack'
import linkerPlugin from '@angular/compiler-cli/linker/babel'
import HtmlWebpackPlugin from 'html-webpack-plugin'
const rootDir = path.dirname(fileURLToPath(import.meta.url))
export default {
entry: path.join(rootDir, 'src/main.ts'),
output: {
path: path.join(rootDir, 'dist'),
filename: 'app.[contenthash].js',
clean: true,
assetModuleFilename: 'assets/[name].[contenthash][ext]',
},
resolve: { extensions: ['.ts', '.js'] },
module: {
rules: [
{ test: /\.ts$/, loader: '@ngtools/webpack' },
{
test: /\.[cm]?js$/,
exclude: /@babel(?:\/|\\)runtime/,
use: {
loader: 'babel-loader',
options: {
compact: false,
plugins: [linkerPlugin],
},
},
},
{ test: /\.css$/, use: 'raw-loader' },
{ test: /\.svg$/, type: 'asset/resource' },
],
},
plugins: [
new AngularWebpackPlugin({ tsconfig: path.join(rootDir, 'tsconfig.json') }),
new HtmlWebpackPlugin({ template: path.join(rootDir, 'src/index.html') }),
],
devServer: { host: '127.0.0.1', static: path.join(rootDir, 'dist') },
}