@expressxjs/cli
v0.0.8
Published
A CLI tool for ExpressXjs framework
Readme
ExpressX CLI
The official command-line toolkit for creating, developing, generating, and building ExpressXjs applications.
Install
npm install --global @expressxjs/cli
expressx --versionYou can also install it locally:
npm install --save-dev @expressxjs/cli
npx expressx --helpCreate a project
expressx new my-api
cd my-api
npm run devThe recommended full template is used by default. The CLI initializes Git and installs dependencies unless you disable those setup steps.
expressx new my-api --template full
expressx new my-api --template api
expressx new my-api --template default
expressx new my-api --skip-install --skip-git| Template | Includes |
| --------- | -------------------------------------------------------------------------------- |
| default | Application bootstrap and a complete users CRUD resource |
| api | Default template plus global exception handling |
| full | API template plus middleware, route interceptor, and global response interceptor |
The full scaffold uses a feature-first structure:
my-api/
├── src/
│ ├── common/
│ │ ├── exceptions/app.exception-handler.ts
│ │ ├── interceptors/
│ │ │ ├── response-envelope.interceptor.ts
│ │ │ └── timing.interceptor.ts
│ │ └── middlewares/request-logger.middleware.ts
│ ├── modules/users/
│ │ ├── user.controller.ts
│ │ ├── user.dto.ts
│ │ └── user.service.ts
│ ├── application.ts
│ └── index.ts
├── .env.example
├── .gitignore
├── package.json
├── README.md
└── tsconfig.jsonThe generated package contains the required ExpressX scanner configuration:
{
"expressx": {
"sourceDir": "src",
"outDir": "dist",
"main": "src/index.ts"
}
}Generate code
Generate a complete CRUD resource in one command:
expressx generate resource Product
# alias
expressx g r ProductThis creates:
src/modules/products/
├── product.controller.ts
├── product.dto.ts
└── product.service.tsGenerate individual components when you need finer control:
expressx generate controller Health
expressx generate service Notification
expressx generate middleware Logger
expressx generate interceptor Timing
expressx generate guard Auth
expressx generate exception App
expressx generate dto Account
expressx generate application AdminComponents are placed in conventional folders by default. Pass a relative path to choose another location:
expressx generate controller Product src/modules/catalogUseful generation options:
expressx generate resource Product --dry-run
expressx generate resource Product --force--dry-run previews every file without writing. --force overwrites an existing component or resource.
Develop and build
# Hot reload
expressx dev
# Forward Node.js and application flags
expressx dev --inspect --port 4000
expressx dev --max-old-space-size=4096
# Build the scanner cache, then compile TypeScript
npm run build
# Target a custom compiler output directory
expressx build --output build
tsc --outDir build
# Run compiled output
npm startThe generated scripts are:
{
"scripts": {
"dev": "expressx dev",
"build": "expressx build && tsc",
"start": "node dist/index.js",
"typecheck": "tsc --noEmit"
}
}The development cache is intentionally reused between CLI sessions. Files added while expressx dev is running are detected automatically. If you add a decorated file while the CLI is stopped, delete <sourceDir>/.expressx/cache.json before starting the CLI again to trigger a fresh scan.
expressx build --output <dir> writes the production cache into that directory and maps discovered TypeScript paths to their compiled JavaScript extensions. Compile the application into the same directory.
Command reference
expressx --help
expressx new --help
expressx generate --help
expressx dev --help
expressx build --helpLicense
MIT
