Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ts-package-init) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ts-package-init
A fast, minimal TypeScript CLI project initializer for Node.js.
Create modern TypeScript projects with sensible defaults in seconds — without framework bloat or unnecessary boilerplate.
Why
Many TypeScript starter templates are:
- Over-engineered
- Framework-heavy
- Bloated with configuration
- Hard to customize
ts-package-init is a lightweight TypeScript CLI tool that scaffolds clean Node.js projects with practical defaults.
Start fast. Stay minimal. Scale when needed.
✨ Features
- Zero-config TypeScript setup
- Presets:
base,library,backend,cli,monorepo,nestjs,moleculer - CommonJS or ESM (
--esm) - Optional ESLint & Prettier
- Optional interactive mode (
--interactive) - Package manager selection (
--package-manager) - Uses
tsxfor fast dev experience - Works with Node.js 18+
🚀 Usage
Quick start
npx ts-package-init my-app
cd my-app
npm run devUsing npm init
npm init ts-package my-appExpected output (file tree)
Minimal structure shown. Additional files are added based on flags.
Base (default)
my-app/
package.json
tsconfig.json
src/
index.tsLibrary
my-lib/
package.json
tsconfig.json
src/
index.tsBackend
api/
package.json
tsconfig.json
src/
index.tsCLI
my-cli/
package.json
tsconfig.json
src/
index.tsMonorepo
my-workspace/
package.json
tsconfig.json
packages/
app/
package.json
tsconfig.json
src/
index.tsNestJS
my-nest/
package.json
tsconfig.json
src/
index.ts
main.ts
app.module.ts
app.controller.ts
app.service.tsMoleculer
my-broker/
package.json
tsconfig.json
src/
index.ts
moleculer.config.ts
services/
greeter.service.tsOptional files and changes
--eslint: addseslint.config.js.--prettier: addseslint.config.js(with Prettier) and.prettierrc.json.--git: adds.git/.--esm: updatespackage.jsonandtsconfig.json(no new files).--skip-install/--package-manager: no file tree changes.
📦 Presets
Base (default)
Minimal runnable TypeScript project.
npx ts-package-init my-appScripts:
{
"build": "tsc",
"dev": "tsx watch src/index.ts"
}Library
For reusable npm packages.
npx ts-package-init my-lib --preset libraryIncludes:
- type declarations
- clean build output
Backend
For APIs, workers, and services.
npx ts-package-init api --preset backendIncludes:
dev,build,startscripts- long-running process defaults
CLI
For command-line tools.
npx ts-package-init my-cli --preset cliIncludes:
- executable binary
- Node shebang support
Monorepo
For npm workspaces with a minimal app package.
npx ts-package-init my-workspace --preset monorepoIncludes:
- root workspaces config
packages/appwith build/dev scripts
NestJS
Minimal NestJS app scaffold (controller, service, module, main).
npx ts-package-init my-nest --preset nestjsIncludes:
- App controller + service
- Module + main bootstrap
- build/dev/start scripts
Moleculer
Minimal Moleculer broker scaffold (config + sample service).
npx ts-package-init my-broker --preset moleculerIncludes:
- Broker config
- Sample service
- build/dev/start scripts
📘 ESM Support
Enable ESM with:
npx ts-package-init my-app --esmThis will:
- set
"type": "module" - adjust TypeScript config automatically
🧹 ESLint & Prettier (optional)
npx ts-package-init my-app --eslint
npx ts-package-init my-app --prettierPrettier automatically enables ESLint integration.
⚙️ Additional flags
npx ts-package-init my-app --interactive
npx ts-package-init my-app --skip-install
npx ts-package-init my-app --package-manager pnpm
npx ts-package-init my-app --git🧪 Examples
npx ts-package-init demo
npx ts-package-init my-lib --preset library --esm
npx ts-package-init api --preset backend --eslint --prettier
npx ts-package-init tool --preset cli
npx ts-package-init my-workspace --preset monorepo --skip-install
npx ts-package-init my-nest --preset nestjs --package-manager pnpm
npx ts-package-init my-broker --preset moleculer --interactive🚢 Release
npm run build
npm pack --dry-run
npm publish📄 License
MIT
Support
If this package helps you, please consider supporting it:
⭐ Star the repository
☕ Support the project: https://buymeacoffee.com/mostafahanafy