Heim >Web-Frontend >js-Tutorial >Erstellen einer TypeScript-CLI für Ihr Monorepo
Ich erstelle gerne lokale CLIs für mein Monorepo, um Aufgaben wie Build und Deployment zu automatisieren. Diese Aufgaben erfordern oft mehr als nur die Verkettung einiger Befehle in einem NPM-Skript (wie rimraf dist && tsc).
Mit commander.js und tsx können wir in TypeScript geschriebene ausführbare Programme erstellen, die wie jedes andere CLI-Tool über die Befehlszeile ausgeführt werden.
#!/usr/bin/env -S pnpm tsx import { Command } from 'commander'; const program = new Command() .name('monorepo') .description('CLI for Monorepo') .version('1.0.0'); program .command('build') .description('Build the monorepo') .action(async () => { console.log('Building...'); // run your build steps ... }); program .command('deploy') .description('Deploy the monorepo') .action(async () => { console.log('Deploying...'); // run your deploy steps ... }); await program.parseAsync(process.argv);
Speichern Sie dieses Skript als cli (oder einen beliebigen Namen Ihrer Wahl) in Ihrem Projektstamm und machen Sie es mit chmod x cli ausführbar. Sie können es dann direkt mit ./cli:
ausführen
$ ./cli Usage: monorepo [options] [command] CLI for Monorepo Options: -V, --version output the version number -h, --help display help for command Commands: build Build the monorepo deploy Deploy the monorepo help [command] display help for command
Die Magie, die es Ihnen ermöglicht, dies ohne Node, Npx oder sogar eine .ts-Erweiterung auszuführen, liegt in der ersten Zeile – dem Knaller:
#!/usr/bin/env -S pnpm tsx
Dieser Kram teilt Ihrer Shell mit, welches Programm diese Datei ausführen soll. Hinter den Kulissen übersetzt es Ihren ./cli-Befehl in pnpm tsx cli. Dies funktioniert auch mit anderen Paketmanagern – Sie können npm oder Yarn anstelle von pnpm verwenden.
Das obige ist der detaillierte Inhalt vonErstellen einer TypeScript-CLI für Ihr Monorepo. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!