最近两天,我陷入了一个非常奇怪的问题。我正在尝试在AWS Elastic beantalk上部署我的webpack nodejs应用程序。 环境健康从确定更改为降级。我已经部署了很多次,但没有发生此类问题。首先,查看日志:
/var/log/eb-activity.log
/opt/elasticbeanstalk/containerfiles/ebnode.py --action节点安装 活动执行失败,原因是:+ /opt/elasticbeanstalk/containerfiles/ebnode.py --action npm-install
npm错误!路径 /tmp/deployment/application/node_modules/grpc/node_modules/.bin/node-pre-gyp npm ERR!代码EEXIST npm ERR!拒绝删除 /tmp/deployment/application/node_modules/grpc/node_modules/.bin/node-pre-gyp: 在外面 / tmp / deployment / application / node_modules / grpc / node_modules / node-pre-gyp 而不是链接
npm错误!文件已存在: /tmp/deployment/application/node_modules/grpc/node_modules/.bin/node-pre-gyp npm ERR!将其移开,然后重试。 npm ERR!可以在以下位置找到该运行的完整日志:npm ERR! /tmp/.npm/_logs/2018-09-18T05_49_17_967Z-debug.log运行npm 安装: /opt/elasticbeanstalk/node-install/node-v8.9.3-linux-x64/bin/npm
将npm配置作业设置为1 npm配置作业设置为1运行npm 使用--production标志时,无法运行npm install。的快照日志 更多细节。 UTC 2018/09/18 05:49:17找不到应用程序npm 调试日志位于/tmp/deployment/application/npm-debug.log 追溯(最近一次通话): 文件“ /opt/elasticbeanstalk/containerfiles/ebnode.py”,行695,在 主要() 主目录中的文件“ /opt/elasticbeanstalk/containerfiles/ebnode.py”,行677 node_version_manager.run_npm_install(options.app_path) 在run_npm_install中的文件“ /opt/elasticbeanstalk/containerfiles/ebnode.py”,第136行 self.npm_install(bin_path,self.config_manager.get_container_config('app_staging_dir')) npm_install中的文件“ /opt/elasticbeanstalk/containerfiles/ebnode.py”,第180行 提高e subprocess.CalledProcessError:命令'['/opt/elasticbeanstalk/node-install/node-v8.9.3-linux-x64/bin/npm', '--production','install']'返回非零退出状态1 (ElasticBeanstalk :: ExternalInvocationError)
现在该错误是某些 node-gyp 模块引起的,请相信我,我之前从未听说过。我正在寻找一种解决方案,以便我可以继续工作,因为在老板面前,这对于我来说确实是一个令人尴尬的情况。您的帮助可以使我摆脱这种情况。
谢谢
答案 0 :(得分:2)
我在各种节点模块上都有相同的问题。当我使用express init
创建了最初的NodeJs Express项目时,这是一个简单的玩具项目。
我发现了许多有关将文件添加到.ebextensions文件夹的帖子,并最终使用了该版本:
在.ebextensions文件夹中创建一个名为01_delete_node_modules.config
的文件,并添加以下内容:
files:
"/opt/elasticbeanstalk/hooks/appdeploy/pre/49_delete_node_modules.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
sudo rm -rf /tmp/deployment/application/node_modules
对乔什·哈里斯(Josh Harris)的博客文章的怀疑: https://medium.com/@jharris.sf/npm-rebuild-elastic-beanstalk-and-permissions-be1c6fceba9a