Vue项目部署CentOS服务器报错:Cannot find module '../package.json'
针对你遇到的部署后找不到../package.json的问题,结合本地正常、服务器存在目标文件的情况,可从以下几个方向逐一排查:
确认命令运行的工作目录
执行npm run serve时,必须确保当前工作目录是/root/WebApp-2-0/shell-ui。如果在上级目录或其他路径执行命令,vue-cli-service中的相对路径../package.json会指向错误位置。先执行cd /root/WebApp-2-0/shell-ui切换到项目根目录,再重新运行启动命令。检查路径大小写匹配性
CentOS文件系统是大小写敏感的,而本地Windows/macOS默认不区分大小写。排查项目中所有引用package.json的代码或配置,确认路径拼写的大小写与实际文件完全一致(比如避免出现Package.json或package.JSON这类错误写法)。重置依赖安装
可能是npm install过程中缓存异常、依赖安装不完整,导致vue-cli-service相关文件损坏。执行以下命令重新安装依赖:# 清除npm缓存 npm cache clean --force # 删除现有依赖目录和锁文件 rm -rf node_modules package-lock.json # 重新安装依赖 npm install验证vue-cli-service脚本的路径指向
node_modules/.bin/vue-cli-service是一个脚本文件,执行cat /root/WebApp-2-0/shell-ui/node_modules/.bin/vue-cli-service查看其内容,确认里面的相对路径是否与项目结构匹配。如果路径解析错误,重新安装依赖通常能修复该问题。检查文件权限
虽然ls能看到package.json,但运行npm run serve的进程可能没有读取权限。执行ls -l /root/WebApp-2-0/shell-ui/package.json查看权限,确保文件拥有读权限(如权限为-rw-r--r--)。若权限不足,执行chmod 644 package.json调整。
内容的提问来源于stack exchange,提问作者Alex Dalen

