错误信息
Packages are hard linked from the content-addressable store to the virtual store.
Content-addressable store is at: /Users/mi/Library/pnpm/store/v3
Virtual store is at: node_modules/.pnpm
Progress: resolved 1445, reused 1382, downloaded 0, added 1380, done
node_modules/.pnpm/esbuild@0.23.1/node_modules/esbuild: Running postinstall script, failed in 196ms
.../esbuild@0.23.1/node_modules/esbuild postinstall$ node install.js
│ /Users/mi/Desktop/test/src/test-boot-vite4/node_modules/.pnpm/esbuild@0.23.1/node_modules/esbuild/instal…
│ throw new Error(`Expected ${JSON.stringify(versionFromPackageJSON)} but got ${JSON.stringify(stdout)}`);
│ ^
│ Error: Expected "0.23.1" but got "0.18.20"
│ at validateBinaryVersion (/Users/mi/Desktop/test/src/test-boot-vite4/node_modules/.pnpm/esbuild@0.23…
│ at /Users/mi/Desktop/test/src/test-boot-vite4/node_modules/.pnpm/esbuild@0.23.1/node_modules/esbuild…
└─ Failed in 196ms at /Users/mi/Desktop/test/src/test-boot-vite4/node_modules/.pnpm/esbuild@0.23.1/node_modules/esbuild
ELIFECYCLE Command failed with exit code 1.
错误原因
是因为esbuild包在运行postinstall脚本时检测到二进制文件的版本与期望的不一致。具体来说,esbuild的包版本是0.23.1,但是它检测到的实际二进制文件版本是0.18.20。因此,它抛出了一个错误并停止了安装过程。
解决方法
- 使用pnpm清理缓存,然后尝试重新安装
pnpm store prune
pnpm install --force
- 手动删除node_modules文件夹和pnpm缓存目录,再重新安装依赖
# 删除依赖目录
rm -rf node_modules
# 删除 Content-addressable store is at: /Users/mi/Library/pnpm/store/v3 这个错误提示下的目录
rm -rf /Users/mi/Library/pnpm/store/v3
pnpm install