nextvm build
Production build: compile TypeScript → JavaScript per module, generate fxmanifest.lua, bundle locales.
Synopsis
bash
nextvm build [--quiet]Options
| Option | Description |
|---|---|
--quiet | Suppress per-module output |
What it does
Loads the project (nextvm.config.ts), discovers every module under modules/*, and for each module:
- Resolves entry points (
src/server/index.ts,src/client/index.ts, or singlesrc/index.ts) - Runs tsup with
format: 'esm'andoutExtension: '.js' - Externalizes every workspace dep so the bundle stays lean
- Generates
fxmanifest.luanext todist/ - Bundles
src/shared/locales/*.ts→dist/locales/*.json - Validates locale completeness (warnings on missing keys)
- Prints a structured per-module summary
Example output
Building 3 module(s)
✓ @nextvm/banking (61ms)
✓ @nextvm/jobs (12ms)
✓ @nextvm/housing (10ms)
✓ Built 3 module(s) in 83msIf a module has locale warnings:
⚠ @nextvm/banking (65ms)
⚠ locale 'de' missing key 'banking.new_field'Exit codes
| Code | Meaning |
|---|---|
| 0 | All modules built successfully |
| 1 | At least one module failed to build, or any error occurred |
Output layout
For each module:
modules/<name>/
├── dist/
│ ├── server.js
│ ├── server.js.map
│ ├── client.js
│ ├── client.js.map
│ └── locales/
│ ├── en.json
│ └── de.json
└── fxmanifest.luaDrop the entire modules/<name>/ folder into your FXServer's resources/ directory and ensure <name> in server.cfg.
See also
@nextvm/buildpackage referencenextvm devfor the watch loop- 1