You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu18.04下root用户执行npm run build报react-scripts权限拒绝求助

解决React项目构建时react-scripts: Permission denied错误的方案

看到你遇到的这个权限问题——在Ubuntu 18.04用root用户构建React项目时碰到react-scripts: Permission denied(错误码126),但Windows下能正常构建,这大概率是Linux系统的执行权限规则或npm运行环境的问题,给你几个针对性的解决方案:

1. 避免用root用户执行npm操作

npm官方强烈不推荐用root用户运行npm命令,哪怕你给了目录777权限,npm在安装依赖时可能会自动调整文件权限,反而引发权限冲突。你可以切换到jenkins用户操作(毕竟项目目录属于jenkins工作空间):

su - jenkins
cd /var/lib/jenkins/workspace/MedAverter/medaverter-front
npm run build

如果切换用户后权限不足,先给jenkins用户赋予该目录的所有权:

chown -R jenkins:jenkins /var/lib/jenkins/workspace/MedAverter/medaverter-front

2. 修复node_modules中脚本的执行权限

从Windows复制过来的项目,node_modules里的可执行脚本(比如react-scripts)可能没有Linux要求的执行权限。你可以直接给目标脚本添加权限:

chmod +x /var/lib/jenkins/workspace/MedAverter/medaverter-front/node_modules/.bin/react-scripts

或者给整个.bin目录递归添加执行权限:

chmod +x -R /var/lib/jenkins/workspace/MedAverter/medaverter-front/node_modules/.bin/

3. 清理缓存并重新安装依赖

有时候依赖缓存或不完整安装会导致这类问题,建议彻底清理后重新安装:

# 清理npm缓存
npm cache clean --force
# 删除现有依赖和锁文件
rm -rf node_modules package-lock.json
# 重新安装依赖
npm install
# 再次尝试构建
npm run build

4. 检查react-scripts脚本的Shebang

如果上面的方法都无效,可以检查脚本的Shebang是否正确:

cat /var/lib/jenkins/workspace/MedAverter/medaverter-front/node_modules/react-scripts/bin/react-scripts.js | head -1

正常应该显示#!/usr/bin/env node,如果缺失或路径错误,手动修正这条内容后再给脚本添加执行权限即可。

这些方法应该能解决你的问题——毕竟Windows不区分文件执行权限,而Linux对这一点要求严格,尤其是root用户操作时更容易出现权限冲突。

内容的提问来源于stack exchange,提问作者user3217883

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 20:52:41