NextJS 14项目用shadcn/ui加组件遇EACCES权限错误求助
解决shadcn-ui添加组件时的EACCES权限错误
问题根源
错误提示mkdir '/components'说明shadcn-ui没找到你的项目根目录,反而试图在系统根目录创建文件夹——要么是你没在项目目录里执行命令,要么是shadcn的配置文件路径错了,或者当前用户对项目目录没有写入权限。
分步解决办法
1. 先切到项目根目录再执行命令
先确保你在Next.js项目的根文件夹里,比如:
cd ~/projects/your-nextjs-app
然后重新跑添加命令:
npx shadcn-ui@latest add navigation-menu
2. 检查并修正components.json配置
项目根目录下的components.json是shadcn的核心配置文件,必须保证路径正确适配Next.js 14的src结构。如果没有这个文件,先初始化:
npx shadcn-ui@latest init
初始化时跟着引导走,把组件目录设为src/components。
如果已经有这个文件,打开它确认配置项:
{ "$schema": "https://ui.shadcn.com/schema.json", "style": "default", "rsc": true, "tsx": false, // 用JSX就设false,TSX设true "tailwind": { "config": "tailwind.config.js", "css": "src/app/globals.css", "baseColor": "slate", "cssVariables": true, "prefix": "" }, "aliases": { "components": "@/components", "utils": "@/lib/utils" } }
重点看aliases里的components路径,必须指向你的项目组件目录。
3. 修复项目目录权限
如果是权限不足导致写不进去,给当前用户赋予项目目录的所有权:
sudo chown -R $USER:$USER /path/to/your-nextjs-project
或者调整目录权限(别给系统根目录改权限,只操作你的项目文件夹):
chmod -R 755 /path/to/your-nextjs-project
4. 本地安装shadcn-ui再执行(可选)
如果是npx全局权限的问题,先在项目里装shadcn-ui:
npm install shadcn-ui
再用本地命令添加组件:
npx shadcn-ui add navigation-menu
5. 清空npx缓存(排除缓存干扰)
如果之前的错误被缓存了,先清缓存:
npx clear-npx-cache
然后重新执行添加命令。
验证
搞定后去src/components/ui目录看看,应该会生成navigation-menu.jsx文件。
内容的提问来源于stack exchange,提问作者Meet Akbari
相关产品推荐
相关产品推荐

