pixijs-create
Use this skill when scaffolding a new PixiJS v8 project with the create-pixi CLI or adding PixiJS to an existing project. Covers npm/yarn/pnpm/bun create commands, interactive vs non-interactive flows, bundler vs creation template categories, available template presets (bundler-vite, bundler-webpack, bundler-esbuild, bundler-import-map, creation-web, framework-react, extension-default), Node version requirements, `npm install pixi.js` for existing projects, post-scaffold dev flow, and the Vite top-level-await production-build gotcha. Triggers on: create pixi.js, npm create, npm install pixi.js, scaffold, template, bundler-vite, bundler-webpack, creation-web, framework-react, new project, existing project, getting started, quick start.
What this skill does
`create pixi.js` is the official CLI for scaffolding a new PixiJS v8 project. Run it with any package manager (`npm`, `yarn`, `pnpm`, `bun`) and pick a template from the interactive menu, or pass `--template` to skip prompts. It writes a self-contained project folder; you then `cd` in, install dependencies, and run the dev script. ## Quick Start Scaffold a new project with interactive prompts: ```bash npm create pixi.js@latest ``` Or skip prompts by passing a project name and template: ```bash npm create pixi.js@latest my-game -- --template bundler-vite ``` Then: ```bash cd my-game npm install npm run dev ``` Requires Node.js 18+ or 20+. Some templates (notably `creation-web` and `framework-react`) may require a newer Node version; the package manager will warn if so. ### Adding PixiJS to an existing project If you already have a bundler, framework, or project set up, skip the CLI and install the package directly: ```bash npm install pixi.js ``` Then import from `pixi.js` and construct an `Application` as shown in `pixijs-application`. The CLI templates are a convenience for new projects; they don't add anything to the library that `npm install pixi.js` can't give you. **Related skills:** `pixijs-application` (how the scaffolded `new Application()` + `app.init()` entry point works), `pixijs-core-concepts` (renderers and the render loop), `pixijs-scene-core-concepts` (scene graph fundamentals for the first things you'll add to the stage), `pixijs-assets` (loading textures, fonts, and bundles the template expects you to drop into `public/` or `src/assets/`). ## Core Patterns ### Choose a package manager The command is the same shape for every package manager: ```bash npm create pixi.js@latest yarn create pixi.js pnpm create pixi.js bun create pixi.js ``` Under npm 7+ you must pass a `--` before CLI flags so npm doesn't consume them: ```bash npm create pixi.js@latest my-game -- --template bundler-vite ``` Yarn, pnpm, and bun don't need the extra separator: ```bash yarn create pixi.js my-game --template bundler-vite pnpm create pixi.js my-game --template bundler-vite bun create pixi.js my-game --template bundler-vite ``` Use `.` as the project name to scaffold into the current directory. ### Interactive flow Running with no arguments walks through prompts: 1. Project name (defaults to `pixi-project`). 2. Framework / template category. 3. Variant (TypeScript vs JavaScript where applicable). 4. Whether to install dependencies immediately (some runners). At the end, the CLI prints the `cd` + install + dev commands for the manager you invoked it with. ### Non-interactive flow Pass a project name and `--template` to skip all prompts. This is the form you want for scripts, CI, and quickstart docs: ```bash npm create pixi.js@latest my-game -- --template bundler-vite ``` ### Available template presets Templates fall into two categories: - **Bundler templates** (`bundler-*`): generic PixiJS setup wired up with your bundler of choice. Use one of these when you want to pick your own structure. - **Creation templates** (`creation-*`): platform-tailored starters with extras already wired in (AssetPack, sound, UI, scene routing). Use one of these when you want batteries included. - **Framework templates** (`framework-*`): PixiJS embedded inside a host framework like React. - **Extension templates** (`extension-*`): scaffolding for building a reusable PixiJS package. For most new projects, `bundler-vite` is the recommended starting point. | Template | What you get | | -------------------- | ------------------------------------------------------------------------------------------------------------ | | `bundler-vite` | Vite + TypeScript PixiJS project. The default first-stop template. | | `bundler-vite-js` | Vite + plain JavaScript. | | `bundler-webpack` | Webpack + TypeScript. | | `bundler-webpack-js` | Webpack + plain JavaScript. | | `bundler-esbuild` | esbuild + TypeScript. | | `bundler-esbuild-js` | esbuild + plain JavaScript. | | `bundler-import-map` | No-bundler setup using a browser import map (good for learning / demos). | | `creation-web` | PixiJS Creation Engine web template with scene-based game scaffolding, AssetPack, sound, and UI integration. | | `framework-react` | React + TypeScript + PixiJS via the `@pixi/react` package. | | `framework-react-js` | React + plain JavaScript + PixiJS. | | `extension-default` | Starter for building a reusable PixiJS extension/package. | The live list is maintained in the `create-pixi` repo; run `npm create pixi.js@latest` without arguments to see the current menu if you need to confirm. ### Post-scaffold flow Every template ships with the same three-step onboarding: ```bash cd my-game npm install npm run dev ``` `npm run dev` starts the local dev server on the default port (Vite 5173, webpack 8080, etc.; the template's README has the exact number). Changes to `src/` hot-reload without reloading the whole page. Other scripts every template exposes (names may vary slightly by preset): - `npm run build`: produce a production build in `dist/`. - `npm run preview` / `npm run serve`: serve the production build locally. - `npm run lint`: run the template's configured linter if it ships one. ### Scaffolding into an existing directory Use `.` as the project name to write into the current working directory. The CLI refuses to run if non-empty and conflicting files exist unless you confirm the prompt. ```bash mkdir my-game cd my-game npm create pixi.js@latest . -- --template bundler-vite ``` ## Next steps After `npm run dev` starts, the template opens on a blank or bunny-sprite scene. The usual progression is: 1. Read `pixijs-application` to understand how the template's entry point constructs `new Application()` and calls `await app.init(...)`, how `app.stage` / `app.renderer` / `app.canvas` hang together, and how the ResizePlugin and TickerPlugin behave by default. 2. Read `pixijs-core-concepts` for the renderer and render-loop mental model. 3. Read `pixijs-scene-core-concepts` before adding your first non-trivial scene so you know the container-vs-leaf rule upfront. 4. Drop in textures via `pixijs-assets` once you're ready to load real art. ## Common Mistakes ### [HIGH] Missing `--` separator on npm 7+ Wrong: ```bash npm create pixi.js@latest my-game --template bundler-vite ``` Correct: ```bash npm create pixi.js@latest my-game -- --template bundler-vite ``` npm 7+ consumes flags after the package spec unless you pass `--` to forward them. Without the separator, the CLI ignores `--template` and drops back to the interactive prompt. Yarn, pnpm, and bun don't need the separator. ### [MEDIUM] Running with an old Node version PixiJS requires Node 18+ or 20+. Some templates (framework-react, creation-web) expect a newer Node for their tooling. Upgrade Node before re-running the CLI if you see an "engines" warning from your package manager. ### [MEDIUM] Top-level `await app.init()` broken in Vite production builds On Vite versions `<=6.0.6`, top-level `await` works in dev but breaks in production builds, so a `bundler-vite` project that does this at module scope will fail after `npm ru
Related in Web Dev
generating-lwc-components
IncludedLightning Web Components with PICKLES methodology and 165-point scoring. Use this skill when the user creates or edits LWC components, builds wire service patterns, or writes Jest tests for LWC. TRIGGER when: user creates/edits LWC components, touches lwc/**/*.js, .html, .css, .js-meta.xml files, or asks about wire service, SLDS, or Jest LWC tests. DO NOT TRIGGER when: Apex classes (use generating-apex), Aura components, or Visualforce.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Set up queries with useQuery, mutations with useMutation, configure QueryClient caching strategies, implement optimistic updates, and handle infinite scroll with useInfiniteQuery. Use when: setting up data fetching in React projects, migrating from v4 to v5, or fixing object syntax required errors, query callbacks removed issues, cacheTime renamed to gcTime, isPending vs isLoading confusion, keepPreviousData removed problems.
document-processor-api
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
nutrient-document-processing
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Covers useMutationState, simplified optimistic updates, throwOnError, network mode (offline/PWA), and infiniteQueryOptions. Use when setting up data fetching, fixing v4→v5 migration errors (object syntax, gcTime, isPending, keepPreviousData), or debugging SSR/hydration issues with streaming server components.
accelint-nextjs-best-practices
IncludedNext.js performance optimization and best practices. Use when writing Next.js code (App Router or Pages Router); implementing Server Components, Server Actions, or API routes; optimizing RSC serialization, data fetching, or server-side rendering; reviewing Next.js code for performance issues; fixing authentication in Server Actions; or implementing Suspense boundaries, parallel data fetching, or request deduplication.