Monorepo 用の TypeScript CLI の作成

DDD
DDDオリジナル
2024-12-10 07:48:10703ブラウズ

Creating a TypeScript CLI for Your Monorepo

私は Monorepo 用のローカル CLI を作成して、ビルドやデプロイなどのタスクを自動化するのが好きです。これらのタスクでは、npm スクリプト (rimraf dist && tsc など) でいくつかのコマンドを連鎖させるだけでは不十分なことがよくあります。

command.js と tsx を使用すると、他の CLI ツールと同様にコマンド ラインから実行できる、TypeScript で記述された実行可能プログラムを作成できます。

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

このスクリプトを cli (または任意の名前) としてプロジェクト ルートに保存し、chmod x cli で実行可能にします。その後、 ./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

ノード、npx、さらには .ts 拡張子なしでこれを実行できるようにする魔法は、最初の行のシバンにあります:

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

このシバンは、どのプログラムがこのファイルを実行すべきかをシェルに指示します。バックグラウンドで、./cli コマンドを pnpm tsx cli に変換します。これは他のパッケージ マネージャーでも機能します。pnpm の代わりに npm または Yarn を使用できます。

以上がMonorepo 用の TypeScript CLI の作成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。