Lets the operator pick between strict JSON (legacy) and JSON5 for every configuration file consumed by Nitro and the renderer. - scripts/configure-json.mjs: interactive prompt (JSON5 recommended), with --if-missing and --non-interactive flags for CI use - package.json: yarn configure / prestart / prebuild hooks - vite.config.mjs: reads .nitro-build.json (or NITRO_JSON_MODE env) and injects the compile-time constant __NITRO_JSON_MODE__ via define - src/bootstrap.ts: routes client-mode.json parsing through the selected mode - .gitignore: ignore the per-deployment .nitro-build.json - README: full usage and override section - public/configuration assets regenerated by the updated prebuild flow The renderer side (@nitrots/utils JsonParser) is updated in the companion Nitro_Render_V3 commit on the dev branch.
4.9 KiB
v2.2.0 -Nitro V3 !! Use at Own Risk as it is still in Beta !!
Prerequisites
- Git
- NodeJS >= 18
- If using NodeJS < 18 remove
--openssl-legacy-providerfrom the package.json scripts
- If using NodeJS < 18 remove
- Yarn
npm i yarn -g
Installation
- First you should open terminal and navigate to the folder where you want to clone Nitro and Nitro-Renderer
- Clone Nitro (Expl. C:\Github)
git clone https://github.com/duckietm/Nitro-V3.git<== For now switch to Dev-RendererV2git clone https://github.com/duckietm/Nitro_Render_V3.git- Install the dependencies for the renderer : cd C:\Github\Nitro_Render_V3
yarn install
- Now we will create a Link for the Nitro Renderer :
yarn linkThis will give you a link addressyarn link "@nitrots/nitro-renderer" - Install the dependencies for Cool UI : cd C:\Github\Nitro-V3
yarn installyarn link "@nitrots/nitro-renderer"<== This will link the renderer in the project
- Rename a few files
- Copy
public/configuration/renderer-config.exampletopublic/configuration/renderer-config.json - Copy
public/configuration/ui-config.exampletopublic/configuration/ui-config.json - Copy
public/configuration/client-mode.exampletopublic/configuration/client-mode.json - Set your links
- Open
public/configuration/renderer-config.json- Update
socket.url, asset.url, image.library.url, & hof.furni.url
- Update
- Open
public/configuration/ui-config.json- Update
camera.url, thumbnails.url, url.prefix, habbopages.url
- Update
yarn build<== the final step to build the DIST folder this is where your browser needs to point / or upload this to your /client if you do the compile on a other machine (preferd)- You can override any variable by passing it to
NitroConfigin the index.html
- Copy
JSON / JSON5 configuration mode
Starting with this version of Nitro V3, you can choose how the client parses the
configuration files (renderer-config.json, ui-config.json, client-mode.json,
and the gamedata JSONs served by the renderer):
- JSON5 (recommended) — accepts comments, trailing commas, single quotes
and unquoted identifiers. Easier to maintain, especially in
ui-config.jsonwhere you may want inline notes. - JSON (legacy strict) — only valid standard JSON is accepted. Any comment or trailing comma will fail the load with a clear error.
Picking a mode
The first time you run yarn start or yarn build, an interactive prompt asks
which mode to use:
════════════════════════════════════════════════════════════
Nitro V3 — JSON mode configuration
════════════════════════════════════════════════════════════
1) JSON5 (recommended)
2) JSON (legacy strict)
Scelta [1=JSON5]:
Your choice is stored in .nitro-build.json at the project root (gitignored, so
each deployment keeps its own setting). Subsequent builds reuse it silently.
Changing the mode later
Run the prompt again at any time:
yarn configure
You can also set the mode without interaction (useful in CI / scripts):
# one-shot override for a single build
NITRO_JSON_MODE=legacy yarn build
NITRO_JSON_MODE=json5 yarn build
# write the choice persistently
echo '{"jsonMode":"legacy"}' > .nitro-build.json
The recognized values are legacy, json5, and auto (auto = try strict JSON
first, fall back to JSON5 — equivalent to the original Render V3 behaviour).
How it propagates
The chosen mode is injected at build time as the compile-time constant
__NITRO_JSON_MODE__. It is honoured by:
src/bootstrap.tswhen loadingclient-mode.json@nitrots/utils→JsonParser.tsin Render V3, used for every config file and every gamedata JSON loaded by the renderer
In legacy mode, an invalid file produces a clear error that suggests switching
to JSON5; nothing is silently coerced.
Usage
- To use Nitro you need
.nitroassets generated, see nitro-converter for instructions - See Morningstar Websockets for instructions on configuring websockets on your server
Development
Run Nitro in development mode when you are editing the files, this way you can see the changes in your browser instantly
yarn start
Production
To build a production version of Nitro just run the following command
yarn build:prod
- A
distfolder will be generated, these are the files that must be uploaded to your webserver - Consult your CMS documentation for compatibility with Nitro and how to add the production files