Add --json flag to CLI commands for machine-readable output on stdout. Generic pattern for any CLI tool, enabling piping to jq and CI/CD integration while keeping human-readable output on stderr.
日本語の概要は準備中です。原文の説明を表示しています。
Set up tsup (esbuild-based bundler) for a TypeScript package. Use when you need single-file bundled output, faster builds, and better startup time for Node.js CLIs or libraries. Covers tsup config, bin entry point, package.json scripts, and keeping tsc for type-checking only.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Replace or add tsup as the build tool for a TypeScript package. Keep tsc --noEmit for type-checking only.
pnpm add -D tsup
import { defineConfig } from 'tsup'
export default defineConfig({
entry: ['src/index.ts'],
format: ['esm'],
target: 'node22',
clean: true,
splitting: false,
sourcemap: true,
dts: false,
// For CLIs: add shebang
banner: {
js: '#!/usr/bin/env node',
},
// Native/dynamic deps that shouldn't be bundled
external: [],
})
For libraries (not CLIs), remove the banner and consider dts: true for declaration files.
{
"scripts": {
"build": "tsup",
"dev": "tsup --watch",
"ts:check": "tsc --noEmit"
}
}
The bin file should point to the tsup output. tsup outputs to dist/ by default:
bin field references dist/index.js (or dist/index.mjs)banner, the bin file can point directly to the bundled outputpnpm build # Should produce dist/index.js (single file)
pnpm ts:check # Type checking still works
node dist/index.js --help # CLI works (if applicable)
Ensure dist/ is in .gitignore.
__dirname or require.resolve, tsup may need those deps in externalimport() calls are preserved by esbuild — this is fineprepare or prepublishOnly script as pnpm build for npm publish workflow"type": "module" in package.jsonまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Add --json flag to CLI commands for machine-readable output on stdout. Generic pattern for any CLI tool, enabling piping to jq and CI/CD integration while keeping human-readable output on stderr.
日本語の概要は準備中です。原文の説明を表示しています。
Add shell completion support via a 'completion' subcommand for bash, zsh, and fish. Generic pattern for any Commander.js CLI, with static and dynamic completion examples.
日本語の概要は準備中です。原文の説明を表示しています。
Add zod schema validation for CLI options and YAML/JSON config files. Generic pattern for runtime validation with type-safe parsing and clear error messages in any Commander.js CLI.
日本語の概要は準備中です。原文の説明を表示しています。
Set up @changesets/cli for semantic versioning, CHANGELOG generation, and npm publishing in a monorepo or single package. Covers init, config, contributor workflow, GitHub Actions release automation, and npm provenance.
日本語の概要は準備中です。原文の説明を表示しています。
Add automatic CI/CD environment detection using ci-info package. Generic pattern for any CLI tool that needs to adapt behavior (prompts, output, integrations) based on whether it's running in CI.
日本語の概要は準備中です。原文の説明を表示しています。
Polish CLI user experience with @clack/prompts for interactive flows, update-notifier for version awareness, and enhanced Commander.js help text with examples and colors. Generic patterns for any Node.js CLI.
日本語の概要は準備中です。原文の説明を表示しています。