前書き#
コマンドラインで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 => リモートリポジトリに存在しないすべてのローカルブランチを削除します
興味がある方は、ぜひフォークして自分で試してみてください。