0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerShellでは認識するのに、git Bashでは認識しない。

Posted at

PowerShellでは認識するのに、git Bashでは認識しない

事象

開発中に、pnpmのコマンド使えなくなったので対策をまとめます。
開発環境:

  • windows10
  • corepack
  • pnpm
  • node18

PowerShellとは

  • Windowsに標準搭載されているコマンドラインシェル
  • cmdの後継で、基本的にcmdのコマンドをそのまま使える
  • さらに管理や自動化に特化した強力な機能を持っている

bash

  • Linuxで利用される代表的なシェル。
  • ls, mv, cat などのコマンドを使える

git bash

WindowsにGitをインストールすると使えるようになるシェル環境。
Linuxライクに lscat などが使える。
ただし PATHの扱いがPowerShellと異なる ため、Node.js関連のコマンドが動かないことがある。

修復方法

.bashrcに下記設定を追加
C:\Users<ユーザー名>.bashrc

PATHを通す

pnpmcorepack 経由で実行されます。
そのため Node.js の bin ディレクトリ を PATH に追加する必要があります。

.bashrc に以下を追記します。

# Node.js / pnpm 用 PATH
export PATH="$APPDATA/npm:$PATH"

shim(シム)とは

  • 本体プログラムを直接実行せず、仲介するスクリプト/実行ファイル のこと
  • 実際には C:\Users<ユーザー名>\AppData\Roaming\npm\pnpm.cmd という小さなファイル(シム)が呼ばれる
  • このシムが corepack を呼び出し、正しい pnpm のバージョンを探して起動する
  • 環境が変わった際にshimは再作成される

今回の原因

  • 誤ったpathが指定されていた
  • すでに壊れてシムを指定していたため、動かなかった

まとめ

  • PowerShellでは動くのにGit Bashでは動かない原因はPATH
  • .bashrc に $APPDATA/npm を追加することで解決!
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?