前書き#
コマンドラインで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 -vでnodeのバージョンを表示する場合、パラメータの渡し方は次のように定義できます。
doskey n = node $*
複数のパラメータの渡し方#
上記の例では、$*はnの後ろのすべてのパラメータを指します。また、$1、$2などの形式を使用して、仮引数を定義することもできます。例えば、vというエイリアスを定義し、v -v -vでnpmとnodeのバージョンを同時に表示することができます。必要に応じて、異なるパラメータを渡すこともできます。
doskey v = npm $1 $t node $2
Linux/Mac のエイリアス設定#
~/.zshrcファイルを開くか新規作成します#
alias s="nr start"
設定が完了したら、source ~/.zshrcコマンドを使用してファイルを更新します。以降、コマンドの調整は~/.zshrcファイルで行うだけで済みます。調整後は必ずsourceを実行してください。
注意:
- ターミナルが
bashタイプの場合は、~/.bash_profileファイルになります- Mac では、エイリアスの設定構文は少し厳密です。例えば、
=の前後にスペースを入れることはできません
拡張#
複数のコマンドの呼び出し#
alias v="npm -v && node -v"
パラメータの渡し方#
aliasはパラメータの渡し方をサポートしていませんが、関数を使用して処理する必要があります。以下の設定を行うと、batchParams -v -vでnpmとnodeのバージョンがそれぞれ表示されます。
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 => リモートリポジトリに存在しないすべてのローカルブランチを削除します
興味がある方は、ぜひフォークして自分で試してみてください。