Maison > interface Web > js tutoriel > Création d'une CLI TypeScript pour votre Monorepo

Création d'une CLI TypeScript pour votre Monorepo

DDD
Libérer: 2024-12-10 07:48:10
original
735 Les gens l'ont consulté

Creating a TypeScript CLI for Your Monorepo

J'aime créer des CLI locales pour mon Monorepo afin d'automatiser des tâches telles que la construction et le déploiement. Ces tâches nécessitent souvent plus que simplement enchaîner quelques commandes dans un script npm (comme rimraf dist && tsc).

En utilisant commander.js et tsx, nous pouvons créer des programmes exécutables écrits en TypeScript qui s'exécutent à partir de la ligne de commande comme n'importe quel autre outil CLI.

#!/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);
Copier après la connexion

Enregistrez ce script sous cli (ou tout autre nom de votre choix) à la racine de votre projet et rendez-le exécutable avec chmod x cli. Vous pouvez ensuite l'exécuter directement en utilisant ./cli :

$ ./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
Copier après la connexion

La magie qui vous permet d'exécuter ceci sans nœud, npx ou même extension .ts est dans la première ligne - le shebang :

#!/usr/bin/env -S pnpm tsx
Copier après la connexion

Ce shebang indique à votre shell quel programme doit exécuter ce fichier. En coulisses, il traduit votre commande ./cli en pnpm tsx cli. Cela fonctionne également avec d'autres gestionnaires de packages - vous pouvez utiliser npm ou fil au lieu de pnpm.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal