Alex-Programer

Alex-Programer

随缘博客,不定期更新不确定的内容~
github
twitter

命令行別名

画像

前書き#

コマンドラインでsと入力するだけで、yarn startや他のコマンドと同等の効果が得られると、非常に便利な体験になります。特に、よく使用するコマンドにとってはそうです。

Windows のエイリアス設定#

alias.batというファイルを作成します#

doskey s = yarn start

レジストリを設定します#

  • win + rを押して実行ウィンドウを表示し、regeditと入力してレジストリを表示します
  • 次に、ctrl + fを押してCommand Processorを検索します
  • Command Processorの下に移動し、新規作成 => 文字列値を選択します
  • 値の名前を AutoRun に設定し、値のデータをalias.batの絶対パスに設定します

設定が完了したら、コマンドラインウィンドウを再起動して変更を有効にします。以降、コマンドの調整はalias.batファイルで行うだけで済みます。

拡張#

複数のコマンドの呼び出し#

例えば、一括でpush操作を行う場合

doskey c = git add . $t git commit -m "update" $t git push

設定の表示#

doskey /macrosコマンドを使用すると、設定されたエイリアスを一覧表示できます。手間だと思う場合は、commandというコマンドを定義して、記憶を助けることもできます。

doskey command = doskey /macros

パラメータの渡し方#

例えば、nというエイリアスをnodeに割り当て、n -vnodeのバージョンを表示する場合、パラメータの渡し方は次のように定義できます。

doskey n = node $*

複数のパラメータの渡し方#

上記の例では、$*nの後ろのすべてのパラメータを指します。また、$1$2などの形式を使用して、仮引数を定義することもできます。例えば、vというエイリアスを定義し、v -v -vnpmnodeのバージョンを同時に表示することができます。必要に応じて、異なるパラメータを渡すこともできます。

doskey v = npm $1 $t node $2

Linux/Mac のエイリアス設定#

~/.zshrcファイルを開くか新規作成します#

alias s="nr start"

設定が完了したら、source ~/.zshrcコマンドを使用してファイルを更新します。以降、コマンドの調整は~/.zshrcファイルで行うだけで済みます。調整後は必ずsourceを実行してください。

注意:

  1. ターミナルがbashタイプの場合は、~/.bash_profileファイルになります
  2. Mac では、エイリアスの設定構文は少し厳密です。例えば、=の前後にスペースを入れることはできません

拡張#

複数のコマンドの呼び出し#

alias v="npm -v && node -v"

パラメータの渡し方#

aliasはパラメータの渡し方をサポートしていませんが、関数を使用して処理する必要があります。以下の設定を行うと、batchParams -v -vnpmnodeのバージョンがそれぞれ表示されます。

batchParams() {
  npm "$1"
  node "$2"
}

より優れた方法#

Windows のエイリアス設定では、ターミナルを起動するたびに登録コマンドが再実行されるため、あまり優れた方法とは言えません。そのため、node cliツールを作成して改善することができます。

カスタムコマンド#

まず、iコマンドを動作させます(npm installを表す)。cliディレクトリを作成し、package.jsonを初期化し、次のコードを定義します。

{
  // ...
  "bin": {
    "i": "./lib/install.js"
  }
  // ...
}

./lib/install.js

#!/usr/bin/env node

const { spawn } = require("child_process");

// npm installを実行し、stdio: "inherit"を設定してnpm installコマンドの実行時の動作(ログの表示など)を継承して表示します
spawn("npm", "install", { stdio: "inherit" });

コマンドの強化#

@antfu/niを使用して実行します

spawn("ni", "", { stdio: "inherit" })

これにより、プロジェクトがどのパッケージマネージャーを必要としているかを自動的に検出し、インストールします。

オープンソース共有#

Windows と Mac の間で作業環境を切り替えることがよくある場合、このようなツールを作成すると便利です。私自身もこのようなツールを作成しました。現在、次の機能があります。

  • i => ni【依存関係のインストール】
  • b => nr build【ビルド】
  • e => nr e2e【E2E テストの実行】
  • t => nr test【ユニットテストの実行】
  • s => nr start 【または nr dev、dev を優先して実行】
  • copen リポジトリの URL => リポジトリをクローンしてすぐに VSCode で開く
  • cbranch => リモートリポジトリに存在しないすべてのローカルブランチを削除します

興味がある方は、ぜひフォークして自分で試してみてください。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。