Rumah >hujung hadapan web >tutorial js >Mencipta TypeScript CLI untuk Monorepo Anda

Mencipta TypeScript CLI untuk Monorepo Anda

DDD
DDDasal
2024-12-10 07:48:10703semak imbas

Creating a TypeScript CLI for Your Monorepo

Saya suka mencipta CLI tempatan untuk Monorepo saya untuk mengautomasikan tugas seperti membina dan menggunakan. Tugasan ini selalunya memerlukan lebih daripada sekadar merantai beberapa arahan dalam skrip npm (seperti rimraf dist && tsc).

Menggunakan commander.js dan tsx, kami boleh mencipta atur cara boleh laku yang ditulis dalam TypeScript yang dijalankan dari baris arahan seperti mana-mana alat CLI yang lain.

#!/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);

Simpan skrip ini sebagai cli (atau mana-mana nama yang anda suka) dalam akar projek anda dan jadikan ia boleh laku dengan chmod x cli. Anda kemudian boleh menjalankannya terus menggunakan ./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

Keajaiban yang membolehkan anda menjalankan ini tanpa nod, npx atau sambungan .ts ada di baris pertama - shebang:

#!/usr/bin/env -S pnpm tsx

Shebang ini memberitahu shell anda program mana yang harus melaksanakan fail ini. Di sebalik tabir, ia menterjemah arahan ./cli anda ke dalam pnpm tsx cli. Ini juga berfungsi dengan pengurus pakej lain - anda boleh menggunakan npm atau benang dan bukannya pnpm.

Atas ialah kandungan terperinci Mencipta TypeScript CLI untuk Monorepo Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn