npmのグローバルインストールなどで追加したコマンドが実行できない
miseはインストールしたツールごとに、実体を呼び出す小さな仲介役(shim)を~/.local/share/mise/shimsに生成する。mise installでインストールした直後はshimも自動生成されるが、miseの管理外の方法でツール本体のディレクトリに新しい実行ファイルを追加した場合、shimは自動的には作られない。mise reshimを実行すると、インストール済みツールの実体を再スキャンし、不足しているshimをまとめて生成する。
mise reshimの基本
jqをインストールしたディレクトリに、mise installを経由しない方法でmy-jq-pluginという実行ファイルを追加した場合を試す。
$ ls ~/.local/share/mise/shims
jq
$ mise reshim
$ ls ~/.local/share/mise/shims
jq
my-jq-plugin
mise reshimを実行する前はjqのshimしか存在しないが、実行後は追加したmy-jq-pluginのshimも生成され、PATHの通った~/.local/share/mise/shims経由で実行できるようになる。
$ my-jq-plugin
hello from my-jq-plugin
npm install -gなど一部のケースは自動でreshimされる
npm install -gでパッケージを追加した場合など、一部のよくあるパターンについてはmiseが自動的にmise reshim相当の処理を行う。一方、yarnやpnpmでグローバルインストールした場合など、miseが把握していないインストール方法では自動で反映されないため、mise reshimを手動で実行する必要がある。
–forceで全shimを作り直す
--forceを付けると、不足分だけでなくmiseが管理する全shimを作り直す。shimの挙動がおかしいときや、インストール済みツールを大きく入れ替えた後にまとめて整合性を取りたいときに使う。
$ mise reshim --force
\第一線のプログラマーの行動原理を学べる!/
