在我尝试对monorepo进行深入了解的时候,基于pnpm工具管理,我在install的时候居然会报错。在自己尝试解决之后,想抛出问题大家一起研究研究(发际线真的不行了。。。)
重现步骤
执行:
pnpm install
期望结果
安装依赖成功
实际结果
我得到了以下报错:
Scope: all 3 workspace projects
ENOENT ENOENT: no such file or directory, mkdir '/path'
本地环境
Windows, macOS, or Linux? : macOS
本地环境信息:
Software | Value |
---|---|
node -v | v16.15.1 |
npm -v | 8.11.0 |
pnpm -v | 7.5.0 |
macOS | 12.4 |
.pnpm-debug.log文件如下(执行pnpm install报错产生的log文件)
{
"0 debug pnpm:scope": {
"selected": 3,
"total": 3,
"workspacePrefix": "/Users/raymond/Desktop/monorepo-demo"
},
"1 error pnpm": {
"errno": -2,
"code": "ENOENT",
"syscall": "mkdir",
"path": "/path",
"err": {
"name": "pnpm",
"message": "ENOENT: no such file or directory, mkdir '/path'",
"code": "ENOENT",
"stack": "pnpm: ENOENT: no such file or directory, mkdir '/path'"
}
}
}
这是一个 Monorepo+pnpm初始化项目 , package.json :
{
"name": "monorepo-demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"type": "module",
"keywords": [],
"author": "",
"license": "ISC"
}
截图如下
尝试解决方案:
1.pnpm install的时候,用root权限安装(sudo pnpm install),结果:失败
2.可能是版本问题,我用nvm去管理pnpm、node版本 ,结果:失败
3.根据报错去解决,在本地去创建path目录,当我执行mkdir path
提示:mkdir: path: Read-only file system
,结果:失败
最后
以上问题已经在pnpm提了issue,有兴趣可以前往了解 github.com/pnpm/pnpm/i…