- Notifications
You must be signed in to change notification settings - Fork24
LWJGL/lwjgl3-www
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
lwjgl.org - Home of Lightweight Java Game Library
The website for LWJGL is build with React. It is a single-page application with client-side routing. It installs a Service Worker in order to work offline.
- Client-siderouting
- Service Worker (works offline)
- Tiny production build (entire codebase + content weights less than 300KB gzipped)
- Code splitting at route & component level
- Scroll restoration
- Route preloading
- Proximity based route preloading (see /download page)
- Build Customizer with smart download queue & client-side ZIP generator
- Customwebpack manifest parsing + code minification
- CSS-in-JS withStitches
- Client is written inTypescript
There is currently no server-side rendering because of hosting constraints.
Static assets are loaded from LWJGL's CDN (AWS CloudFront).
Build status icons are loaded directly fromtravis-ci.org andappveyor.com.
Three.js is loaded fromjsDelivr.
Install all required npm packages and build styles:
#corepack enablepnpm inode --run build:styles
Start the server in dev mode:
node --run start
The following flags are used for testing production builds locally.NODE_ENV environment variable must be set to "production".
--test# Enables production test mode (e.g. disables HSTS)--nocache# Disables Pug view caching--pretty# Pretty prints HTML--s3proxy# Proxies S3 images
NODE_ENV="production"# default: developmentPORT="8080"# default: 80HOST="127.0.0.1"# default: 0.0.0.0
To deploy LWJGL in production please read the separate guide:DEPLOYMENT.md.
git pullpnpm inode --run release
You can run the production build locally:
node --run dev:test-production
The following debugging tips may come in handy:
- Disable minification by uncommenting
minimize: false
inwebpack.config.js - Prevent Terser from dropping
console.log
ordebugger
by changingterserOptions
interser-config.json - Set
PROFILING=1
env variable to load React profiling builds - Output
named
module & chunk ids inwebpack.config.js - Analyze build output with
npx webpack-bundle-analyzer public/js/build.manifest.json -h 0.0.0.0
(for full breakdown, change toall: true
when writingbuild.manifest.json
inbuild-production.js)
About
The LWJGL 3 website.