From ed8c07a88fd0c428c96c4b3a4819f4ee3490f653 Mon Sep 17 00:00:00 2001 From: cha0s Date: Sun, 21 Jul 2024 11:04:06 -0500 Subject: [PATCH] fix: production build --- app/react/components/pixi/entity.jsx | 2 +- app/react/components/pixi/lights.js | 27 +++++++++++---------------- app/server/pixi-context.js | 8 ++++++++ server.js | 2 ++ vite.config.js | 8 ++++++++ 5 files changed, 30 insertions(+), 17 deletions(-) create mode 100644 app/server/pixi-context.js diff --git a/app/react/components/pixi/entity.jsx b/app/react/components/pixi/entity.jsx index 58899fe..74584fa 100644 --- a/app/react/components/pixi/entity.jsx +++ b/app/react/components/pixi/entity.jsx @@ -5,7 +5,7 @@ import {useDebug} from '@/react/context/debug.js'; import {useMainEntity} from '@/react/context/main-entity.js'; import Emitter from './emitter.jsx'; -import Light from './light.jsx'; +// import Light from './light.jsx'; import Sprite from './sprite.jsx'; function Aabb({color, width = 0.5, x0, y0, x1, y1, ...rest}) { diff --git a/app/react/components/pixi/lights.js b/app/react/components/pixi/lights.js index 31da257..d62aa3e 100644 --- a/app/react/components/pixi/lights.js +++ b/app/react/components/pixi/lights.js @@ -1,4 +1,5 @@ import {Group, Layer} from '@pixi/layers'; +import * as Lights from '@pixi/lights'; class LightLayer extends Layer { $$diffuseTexture; @@ -42,22 +43,16 @@ class DeferredLighting { export const deferredLighting = new DeferredLighting(); -let AmbientLight, PointLight; - -if ('undefined' !== typeof window) { - const Lights = await import('@pixi/lights'); - AmbientLight = class AmbientLight extends Lights.AmbientLight { - constructor(...args) { - super(...args); - this.parentGroup = deferredLighting.lightGroup; - } - } - PointLight = class PointLight extends Lights.PointLight { - constructor(...args) { - super(...args); - this.parentGroup = deferredLighting.lightGroup; - } +export class AmbientLight extends Lights.AmbientLight { + constructor(...args) { + super(...args); + this.parentGroup = deferredLighting.lightGroup; } } -export {AmbientLight, PointLight}; +export class PointLight extends Lights.PointLight { + constructor(...args) { + super(...args); + this.parentGroup = deferredLighting.lightGroup; + } +} diff --git a/app/server/pixi-context.js b/app/server/pixi-context.js new file mode 100644 index 0000000..786e4c6 --- /dev/null +++ b/app/server/pixi-context.js @@ -0,0 +1,8 @@ +import {settings} from '@pixi/core'; + +settings.ADAPTER = { + ...settings.ADAPTER, + createCanvas: () => ({ + getContext: () => undefined, + }), +}; diff --git a/server.js b/server.js index 2087e84..225f5d7 100644 --- a/server.js +++ b/server.js @@ -44,6 +44,8 @@ let websocketBuilt = false; const remixHandler = createRequestHandler({ build: async () => { + // patch pixi server context + import('./app/server/pixi-context.js'); const ssr = await ( viteDevServer ? viteDevServer.ssrLoadModule('virtual:remix/server-build') diff --git a/vite.config.js b/vite.config.js index bad7521..653b667 100644 --- a/vite.config.js +++ b/vite.config.js @@ -25,6 +25,11 @@ else { } export default defineConfig({ + esbuild: { + supported: { + 'top-level-await': true, + }, + }, plugins, resolve: { alias: [ @@ -41,4 +46,7 @@ export default defineConfig({ cert: readFileSync(`${cacheDirectory}/localhost.pem`), }, }, + worker: { + format: 'es', + }, });