pnpm 導入時に起きたエラー対処法
概要
M1 搭載の Mac に pnpm を実行できる環境の導入
環境
- Mac M1
- Homebrew 4.1.22
- nodebrew v8.9.4
- Node 20.10.0
- npm 10.2.3
- npx 10.2.3
nodebrew で node.js をインストールする
手順
まず、nodebrew がインストールされていることを確認する。
nodebrew -v
もしインストールされていない場合は、以下のコマンドを実行してインストールしてください。
brew install nodebrew
インストールされていることが確認できたら、以下のコマンドでインストール可能な node.js のバージョン一覧を確認する。
nodebrew ls-remote
確認後、node.js をバージョンを指定して、あるいは、LTSを指定してインストールする。
バージョン指定の場合 ※指定するバージョンで{version}を置換してください。
nodebrew install-binary {version}
安定版を指定する場合
nodebrew install-binary stable
発生したエラー
nodebrew ls-remote 実行時にエラー
nodebrew ls-remote
を実行した際に、以下のようなエラーが出力されました。
Fetching: https://nodejs.org/dist/{version}/node-{version}-darwin-x64.tar.gz
Warning: Failed to create the file
Warning: /Users/whoami/.nodebrew/src/{version}/node-{version}-darwin-x64.ta
Warning: r.gz: No such file or directory
curl: (23) Failed writing body (0 != 941)
download failed: https://nodejs.org/dist/{version}/node-{version}-darwin-x64.tar.gz
これは以下のコマンドを実行することで解決することができました。
nodebrew setup
再度nodebrew ls-remote
を実行してもエラーが出力されず、期待通りの動作を確認することができました。
nodebrew install-binary stable 実行時にエラー
nodebrew install-binary stable
実行時に以下のエラーが出力されました。
Fetching: https://nodejs.org/dist/{version}/node-{version}-darwin-x64.tar.gz
Warning: Failed to create the file
Warning: /Users/masahito/.nodebrew/src/{version}/node-{version}-darwin-x64.tar.gz:
Warning: No such file or directory
curl: (23) Failure writing output to destination
download failed: https://nodejs.org/dist/{version}/node-{version}-darwin-x64.tar.gz
以下のコマンドを実行することで解決しました。
curl -L git.io/nodebrew | perl - setup
再度nodebrew install-binary stable
を実行してもエラーが出力されず、LTS の node.js をインストールすることができました。
pnpm をインストールする
手順
以下のコマンドを実行する。
npm install -g pnpm
発生したエラー
npm install -g pnpm
を実行した際に以下のエラーが出力される可能性があります。
npm ERR! code EACCES
npm ERR! syscall rename
npm ERR! path /usr/local/lib/node_modules/pnpm
npm ERR! dest /usr/local/lib/node_modules/.pnpm-LW2coPit
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, rename '/usr/local/lib/node_modules/pnpm' -> '/usr/local/lib/node_modules/.pnpm-LW2coPit'
npm ERR! [Error: EACCES: permission denied, rename '/usr/local/lib/node_modules/pnpm' -> '/usr/local/lib/node_modules/.pnpm-LW2coPit'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'rename',
npm ERR! path: '/usr/local/lib/node_modules/pnpm',
npm ERR! dest: '/usr/local/lib/node_modules/.pnpm-LW2coPit'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
npm ERR! A complete log of this run can be found in: /Users/ny/.npm/_logs/2023-12-08T05_27_32_874Z-debug-0.log
こちらのエラーは、特定のファイルへのアクセス権限がないため発生しているエラーであるので、rootユーザーで実行することで解決されました。
sudo npm install -g pnpm
pnpm 初回実行時に発生したエラー
pnpm のインストールが完了し、pnpm コマンドを実行すると以下のようなエラーが出力される場合があります。
ERR_PNPM_UNSUPPORTED_ENGINE Unsupported environment (bad pnpm and/or Node.js version)
Your Node version is incompatible with "/Users/[My name]/Projects/[My organisation]/[My project]".
Expected version: >= 8.9.4 < 15.0
Got: v19.7.0
This is happening because the package's manifest has an engines.node field specified.
To fix this issue, install the required Node version.
エラ〜メッセージを確認すると、node -v
で出力されるバージョンと異なる node.js バージョンが pnpm コマンド実行時に指定されています。
これは以下のコマンドを実行することで解決されました。参考
pnpm add -g pnpm
おまけ
pnpm の npx に当たるものを調べたところ pnpm dlx
でした。
pnpm dlx
Discussion