pixijs-migration-v8
Use this skill when upgrading to PixiJS v8 from v7 or diagnosing broken v7 code after an upgrade. Covers async app.init, single pixi.js package (deprecated @pixi/* sub-packages), Graphics shape-then-fill, BaseTexture → TextureSource, shader/uniform rework, ParticleContainer+Particle, constructor options objects, DisplayObject removal, settings/utils removal, Ticker signature, events rewrite. Triggers on: migrate v7, v8 breaking changes, @pixi/ import, DisplayObject, beginFill, endFill, cacheAsBi
Security Assessment
About pixijs-migration-v8
PixiJS Migration v8 is a breaking-change checklist for upgrading a PixiJS v7 codebase to v8 and for diagnosing v7 code that broke after an upgrade. It maps each old v7 pattern to its v8 replacement and is designed to be worked through top-down, category by category. The recommended porting order is imports, then Application init, Graphics, Text, events, shaders and filters, and finally cleanup.
Coverage spans the major breaking areas of the release. Initialization moves to an asynchronous pattern: construct new Application() and await app.init(...) rather than passing options to the constructor, and app.canvas replaces the deprecated app.view. Imports collapse to the single pixi.js package, and the doc enumerates the deprecated v7 core @pixi/* sub-packages that must no longer be used, while noting that supplemental packages like @pixi/sound remain valid; custom builds can set skipExtensionImports: true and import only needed extensions. The Graphics API switches to shape-then-fill, with renamed shape methods (drawRect becomes rect, drawCircle becomes circle, and so on), fill() and stroke() replacing beginFill and lineStyle, cut() replacing beginHole/endHole, and GraphicsContext replacing GraphicsGeometry.
Further sections cover Text, BitmapText, and HTMLText moving to options-object constructors and bitmap-font import requirements; sprite and mesh changes including Texture.from no longer loading URLs (call Assets.load first), NineSliceSprite, mesh renames, and ParticleContainer using Particle instances; and an events rewrite where eventMode replaces interactive, with a default of passive meaning no events unless set to static or dynamic. It also flags subtle runtime traps, such as the Ticker callback now receiving a Ticker object rather than a delta number, so old code compiles but silently coerces rotation to NaN, plus the removal of updateTransform in favor of onRender, and the shader rework where Shader.from takes an options object with gl and resources. Triggers include migrating v7, v8 breaking changes, @pixi/ imports, DisplayObject, beginFill/endFill, cacheAsBitmap, BaseTexture, and deprecated APIs.
FAQ
What is the recommended order to migrate?
Install the single pixi.js package, then port in this order: imports, Application init, Graphics, Text, events, shaders/filters, and cleanup.
How does Application initialization change in v8?
It becomes asynchronous: construct new Application() and then await app.init({ width, height }) instead of passing options to the constructor, and use app.canvas instead of the deprecated app.view.
How does the Graphics API change?
It uses shape-then-fill: shape methods are renamed (for example drawRect becomes rect), fill() and stroke() replace beginFill and lineStyle, cut() replaces beginHole/endHole, and GraphicsContext replaces GraphicsGeometry.
Why did my Ticker callback start producing NaN?
In v8 the ticker callback receives a Ticker object, not a delta number. Code like app.ticker.add((dt) => obj.rotation += dt) still compiles but coerces to NaN; read ticker.deltaTime from the Ticker argument instead.
Do I still import from @pixi/* sub-packages?
No. v8 uses the single pixi.js package, and the deprecated v7 core @pixi/* sub-packages must not be used. Supplemental packages such as @pixi/sound remain valid, and community filters move to paths like pixi-filters/adjustment.
Install pixijs-migration-v8
Quick Setup:
- Copy the skill folder to
.claude/skills/ - Claude will automatically detect and use the skill
Repository
pixijs/pixijs-skills