为啥“npm run build”会产生错误“react-scripts Permission denied”?

Posted

技术标签:

【中文标题】为啥“npm run build”会产生错误“react-scripts Permission denied”?【英文标题】:why does "npm run build" produce error "react-scripts Permission denied"?为什么“npm run build”会产生错误“react-scripts Permission denied”? 【发布时间】:2020-09-17 16:15:32 【问题描述】:

我在 Ubuntu 18.04 上,以 root 身份登录。 /root/.npm 的 group:owner 是 root:root,递归,所有权限都是 777,递归。如果我 cd 到 React 文件夹:

cd /var/lib/jenkins/workspace/MedAverter/medaverter-front

并将该文件夹的所有权限设置为777,递归然后运行

npm run build

我得到错误:

[[1;34mINFO[m] 运行“npm run build” /var/lib/jenkins/workspace/MedAverter/medaverter-front [[1;34mINFO[m] [[1;34mINFO[m] > medaverter-front@0.1.0 构建 /var/lib/jenkins/workspace/MedAverter/medaverter-front [[1;34mINFO[m] > 反应脚本构建 [[1;34mINFO[m] [[1;31mERROR[m] sh:1:反应脚本:权限被拒绝 [[1;31mERROR[m] npm 错误!代码 ELIFECYCLE [[1;31mERROR[m] npm ERR! 错误号 126 [[1;31mERROR[m] npm 错误! medaverter-front@0.1.0 构建: react-scripts build [[1;31mERROR[m] npm 错误!退出状态 126 [[1;31mERROR[m] npm 错误! [[1;31mERROR[m] npm 错误!失败了 medaverter-front@0.1.0 构建脚本。

我已经在谷歌上搜索了几个小时没有运气的解决方案。它在 Windows 10 下构建良好。 有什么建议吗?

【问题讨论】:

你试过sudo npm run build 您很幸运收到了错误消息!并非所有人都因为权限错误而幸运!执行@iRohitBhatia 的建议,您可能还需要--save--s 才能使其根据需要正常工作。 前面 sudo 出现同样的错误 【参考方案1】:

您可能需要运行

$ npm config set user root

我从节点 docker 文件构建后遇到了这个问题

【讨论】:

【参考方案2】:

因为我无法发表评论。

就我个人而言,我遵循了answer 并选择了解决方案 2。

阅读更多有关此内容后,您不应授予 npm sudo/root 权限。你太相信剧本了。而是按照该指南更新您的 npm,您将不再遇到该问题。

为我的树莓派做的。

【讨论】:

在我尝试从我的盒子中“删除所有节点痕迹”期间,我还删除了我的 React 项目中的 node_modules 文件夹。后来,当我尝试使用“npm install”将其取回时,它失败了。取而代之的是“纱线安装”。 虽然我接受了这个答案,因为在跳过了“答案”链接定义的所有箍以及它上面的所有子链接之后,我终于能够让“npm run build”工作。然后我回到詹金斯并做了一个“立即构建”,它再次给出了同样的错误。然后我回到文件夹并自己发出命令,确实,再次得到相同的“react-scripts:Permission denied”错误! 我对 *** 响应消息比较陌生,直到现在我才看到这一点。对延误表示歉意。看来你还是有问题。使用我的树莓派,只要我更新环境变量以指向我放在 Documents 文件夹中的新 npm,它就可以正常工作。自从我这样做以来,从未使用过 sudo。我猜你已经尝试过环境变量指向新文件夹?可能是错误的,但据我了解 node_modules 文件夹是已经安装的,因此不会引起任何问题。【参考方案3】:

我终于解决了这个问题。解决方案如下所示: "npm run build" = "react-scripts: Permission denied"

主要问题是用户 jenkins 试图运行用户 root 拥有的东西。所以你需要做一个

sudo chown -R jenkins medaverter-front

你还需要把 sudo 放在 chmod 前面

sudo chomod -R 777 medaverter-front

即使我以 root 身份登录,但不知何故这还不够。我不明白为什么不这样做,但肯定有一些项目的权限没有被更改。

【讨论】:

以上是关于为啥“npm run build”会产生错误“react-scripts Permission denied”?的主要内容,如果未能解决你的问题,请参考以下文章

我在 Windows 上收到“npm run build”部署错误 [重复]

命令“npm run build -- --prod”退出并出现代码 1 错误

运行 npm run build 时出现构建错误

运行 npm run build 时出现构建错误

vue-cli 项目中绝对路径引用的相关资源 npm run build 后 打开页面报404错误

反应:npm start 工作,npm run build 抛出 ELIFECYCLE 错误(errno 1)