setup-node-api scaffolds a minimal Node.js + Express API with sensible defaults.
Node.js 20.12.0 or newer is required.
- Scaffold a ready-to-run Express API
- Choose JavaScript or TypeScript
- Use prompts interactively or pass CLI flags
- Validate project names before generation
- Avoid overwriting existing folders without confirmation
- Optionally skip dependency installation
npx setup-node-api my-apiRun it against the latest published version explicitly:
npx setup-node-api@latest my-apiCreate a TypeScript project:
npx setup-node-api my-api --typescriptSkip package installation:
npx setup-node-api my-api --no-installSet a custom port:
npx setup-node-api my-api --port 8080setup-node-api [project-name] [options]| Option | Description |
|---|---|
--typescript |
Generate the TypeScript template |
--no-install |
Skip dependency installation |
--port <number> |
Write a custom PORT value to .env |
-h, --help |
Show help |
-V, --version |
Show the installed CLI version |
If you omit some options, the CLI prompts for them in an interactive terminal.
JavaScript template:
my-api/
|-- .env
|-- package.json
`-- src/
`-- app.js
TypeScript template:
my-api/
|-- .env
|-- package.json
|-- tsconfig.json
`-- src/
`-- app.ts
The generated project name in package.json is automatically set to the selected folder name.
Create a JavaScript project without installing dependencies:
setup-node-api my-api --no-installCreate a TypeScript project and set a custom port:
setup-node-api my-api --typescript --port 4000Ask the CLI to guide you interactively:
setup-node-apinpm install
npm test
npm run checkGitHub Actions runs the test suite on Node.js 20 and 22 across Linux, Windows, and macOS for pushes to main and pull requests.
- In a non-interactive environment, provide the project name as an argument.
- If the target folder already exists, the CLI stops unless you explicitly confirm overwrite in an interactive terminal.
prepublishOnlyrunsnpm run checkbefore publish.
MIT