首页 > 解决方案 > beantalk npm/yarn 安装中缺少模块,只能作为 root 工作

问题描述

我有一个 posthook 可以在我的 (PHP) beanstalk 上安装 npm 以编程方式构建一些东西。

这是来自 .platfom/hooks/postdeploy/99_node.sh 的脚本

curl -fsSL https://rpm.nodesource.com/setup_12.x | bash -
yum install -y nodejs

npm install -g yarn lerna gatsby-cli
yarn global add lerna gatsby-cli
yarn start

最大的问题是当我运行yarn build(启动 Gatsby 构建)时,它不能从 webapp 用户运行,而只能作为 root 运行。有什么建议么?

标签: npmamazon-elastic-beanstalkyarnpkg

解决方案


我认为 posthook 将以 root 用户身份运行,因为您不需要 asudo或类似的文件来执行yum install. 这意味着您还以 root 用户身份安装软件包。这可能是您遇到权限问题的原因。

运行后,您应该能够使用su命令切换用户(到 webapp 用户)yum install,以便以npm install正确的用户身份运行,这应该会自动修复可能导致此问题的权限/安装位置问题。


推荐阅读