1. Установка, сборка и типизация проекта на PixiJS 7.4.3
Установка, сборка и типизация проекта на PixiJS 7.4.3
В этой статье мы настроим современный проект на PixiJS 7.4.3 с TypeScript: установим зависимости, запустим dev-сборку, соберём production-бандл и разберёмся, откуда берутся типы и как сделать типизацию устойчивой.
Что мы в итоге получим
distPIXI.Application и корректными типамиТребования к окружению
npm (идёт вместе с Node.js)> В курсе мы будем собирать проект на Vite: он простой, быстрый и отлично дружит с TypeScript.
Ссылки на официальные источники:
Создание проекта на Vite + TypeScript
Создадим проект с шаблоном vanilla TypeScript.
Запустим dev-сервер:
После запуска Vite покажет локальный адрес (обычно http://localhost:5173).
Установка PixiJS 7.4.3
Установим PixiJS, закрепив версию 7.4.3, чтобы поведение и API совпадали с курсом.
Проверить версию можно так:
Минимальный стартовый код PixiJS с типами
Откройте файл src/main.ts и замените содержимое на минимальный пример:
Что здесь важно:
PIXI.Application создаёт приложение и канвас.app.view в PixiJS 7 возвращает элемент канваса; в зависимости от окружения и настроек типы могут быть шире, поэтому иногда удобно явно привести к HTMLCanvasElement.Graphics рисует примитивы (это удобно для первых проверок, не нужны ассеты).Как устроена типизация PixiJS
PixiJS поставляется уже с TypeScript-типами. Это означает:
@types/pixi.js обычно не нужен.pixi.js.Проверить это просто: наведите курсор на PIXI.Application в редакторе и убедитесь, что показываются типы.
Если у вас есть старые привычки из мира DefinitelyTyped, запомните правило:
@types/... не нужно и иногда даже вредно (может подтянуться несовместимая версия типов).Структура проекта и что где лежит
Типичная структура после создания Vite-проекта:
| Путь | Назначение |
| --- | --- |
| index.html | Точка входа HTML, Vite подключает отсюда src/main.ts |
| src/main.ts | Главный файл приложения |
| tsconfig.json | Настройки TypeScript |
| vite.config.ts | Конфигурация сборщика (может отсутствовать по умолчанию) |
| dist/ | Результат production-сборки (появится после npm run build) |
Сборка и запуск в production-режиме
Основные команды Vite:
npm run dev запускает dev-сервер.npm run build собирает production-бандл.npm run preview локально запускает уже собранный dist.Соберём проект:
Проверим сборку:
!Диаграмма показывает, как исходники проходят через Vite в режиме разработки и сборки
Настройка TypeScript для устойчивой разработки
Откройте tsconfig.json. В Vite-шаблоне обычно уже включены хорошие настройки. Ниже приведён ориентир, который подходит для PixiJS-проектов.
Пример (не обязательно копировать дословно, важно понимать смысл ключей):
Ключевые параметры:
lib: ["DOM", ...] нужен, чтобы TypeScript знал про браузерные API (window, document, HTMLCanvasElement).strict: true включает строгую проверку типов: поначалу сложнее, но ошибок в графических приложениях становится меньше.noEmit: true говорит TypeScript не генерировать JS-файлы, потому что этим занимается Vite.types: ["vite/client"] добавляет типы Vite, например для импорта ассетов.skipLibCheck: true ускоряет сборку, отключая проверку типов внутри node_modules.Импорт ассетов и типы (кратко)
В Vite можно импортировать файлы как URL-строки, а TypeScript будет понимать такие импорты благодаря vite/client.
Пример (пока без загрузки в PixiJS, просто демонстрация типизации импорта):
Что важно:
bunnyUrl будет строкой с адресом до файла в dev-режиме и в dist.Частые проблемы и решения
pixi.js не найденnpm install и что в package.json есть pixi.js.
any.ts.
- Проверьте, что редактор использует локальный TypeScript проекта.
document.body.appendChild(app.view ...).
- Откройте консоль браузера и посмотрите, нет ли ошибок.Что дальше по курсу
Дальше мы начнём строить правильную структуру приложения на PixiJS: сцена, контейнеры, базовый игровой цикл, работа с Ticker, а затем перейдём к спрайтам, загрузке ресурсов и интерактивности. Текущий результат важен тем, что у нас уже есть повторяемая сборка и строгая типизация, на которую можно опираться во всех последующих темах.