向空NX工作区添加@nrwl/react失败,遇Cypress权限错误
解决NX工作区添加@nrwl/react时的Cypress权限问题
我之前也碰到过一模一样的问题,这本质上是Cypress缓存目录的文件权限混乱导致的——哪怕用sudo也只会让问题更糟,因为sudo会让安装过程以root身份运行,反而把缓存目录的所有权改成root,普通用户就更写不进去了。
问题根源
你遇到的核心错误是:
无法访问/home/mint/.cache/Cypress:EACCES: permission denied, mkdir '/home/mint/.cache/Cypress'
这说明Cypress在尝试创建或写入自己的缓存目录时,当前用户没有足够的权限。另外那个Angular对等依赖的警告只是次要问题,不影响React的安装,可以后续再处理。
分步解决方案
1. 修复缓存目录的权限
首先处理最核心的权限问题:
- 先查看缓存目录的所有权(如果目录存在的话):
ls -ld ~/.cache/Cypress - 如果显示所有者是root,就把所有权改回当前用户:
sudo chown -R $USER:$USER ~/.cache/Cypress - 如果目录还不存在,直接创建并设置正确的权限:
mkdir -p ~/.cache/Cypress && chmod 700 ~/.cache/Cypress
2. 清理之前的失败缓存
为了避免残留的失败安装文件干扰,先清理包管理器的缓存:
- 如果你用yarn:
yarn cache clean - 如果你用npm:
npm cache clean --force
3. 重新执行安装命令
注意:绝对不要用sudo执行这条命令,普通用户身份运行即可:
yarn ng add @nrwl/react
4. 处理Angular对等依赖警告(可选)
如果你之后不需要用到Angular相关的工具,可以忽略这个警告;如果需要,手动安装对应的依赖:
yarn add -D @angular/compiler-cli@^8.0.0
为什么手动安装Cypress没用?因为手动安装没有解决缓存目录的权限问题,而且NX在安装@nrwl/react时会自动处理Cypress的依赖,所以先搞定权限再重新运行安装命令才是正确的路径。
内容的提问来源于stack exchange,提问作者Anatole Lucet
相关产品推荐
相关产品推荐

