Elastic Beanstalk npm失败

时间:2017-03-13 17:38:14

标签: elastic-beanstalk npm-install amazon-elastic-beanstalk

我正在尝试将我的应用程序上传到Elastic Beanstalk,但是npm安装在node-pre-gyp安装--fallback-to-build上失败了。我尝试过各种版本的节点但没有用。它似乎试图获得一个不存在且不需要的Linux软件包,它只需要OSX(它工作正常)。

解决方案似乎是使用--no-optional标志运行npm install,但我找不到使用此标志进行EB运行安装的方法。

此包也似乎是karma的依赖,我只在package.json文件中作为dev依赖。我可以看到EB正在使用--production标志进行安装,所以我不知道它首先尝试安装它。

非常感谢有关如何解决此问题的任何想法。

>     Running npm with --production flag
>       Failed to run npm install. Snapshot logs for more details.
>       Traceback (most recent call last):
>         File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 695, in <module>
>           main()
>         File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 677, in main
>           node_version_manager.run_npm_install(options.app_path)
>         File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 136, in run_npm_install
>           self.npm_install(bin_path, self.config_manager.get_container_config('app_staging_dir'))
>         File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 180, in npm_install
>           raise e
>       subprocess.CalledProcessError: Command '['/opt/elasticbeanstalk/node-install/node-v4.6.1-linux-x64/bin/npm',
> '--production', 'rebuild']' returned non-zero exit status 1
> (ElasticBeanstalk::ExternalInvocationError)
>     caused by: + /opt/elasticbeanstalk/containerfiles/ebnode.py --action npm-install
>       npm WARN package.json Room@1.0.0 No repository field.
>       npm WARN package.json Room@1.0.0 No README data
>       npm WARN package.json Room@1.0.0 No license field.
>       
>       > uglifyjs-webpack-plugin@0.2.1 postinstall /tmp/deployment/application/node_modules/uglifyjs-webpack-plugin
>       > node lib/post_install.js
>       
>       
>       > fsevents@1.0.15 install /tmp/deployment/application/node_modules/karma/node_modules/chokidar/node_modules/fsevents
>       > node-pre-gyp install --fallback-to-build
>       
>       node-pre-gyp ERR! Tried to download: https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.0.15/fse-v1.0.15-node-v46-linux-x64.tar.gz

3 个答案:

答案 0 :(得分:4)

如果有其他人遇到此问题,我的问题出现在我的.gitignore中,我有node_modules而不是node_modules/,并且该文件夹已被跟踪和部署。从部署中删除node_modules文件夹解决了这个问题。

答案 1 :(得分:3)

我有类似休假的错误 enter image description here

在查看更多详细信息部分时,我发现了这一点,这是bcrypt库中的错误 enter image description here

因此,我删除了该库并安装了bcryptjs库,然后再次部署了该库,然后成功部署了该库。因此,当存在不赞成使用的库而不支持库时,可能会出现这种错误。

答案 2 :(得分:1)

首先,前往

检查您的日志
  1. 转到Elastic Beanstalk.
  2. 点击您应用的环境名称
  3. 在侧边栏选择Logs
  4. 点击Request Logs并选择Last 100 LinesFull Log.
  5. 从您的日志中,您将了解 npm 失败的原因

是时候修复它了!

  1. 如果它与gyp WARNgyp WARN EACCESSgyp ERR 相关,则在您的项目的根目录中创建一个名为.npmrc 的文件。在此文件中,添加 unsafe-perm=true。这将强制 npm 以 root 身份运行 node-gyp。

  2. 如果错误与某个特定的 npm 包安装失败有关,请考虑使用该包的替代方案。

一切顺利!!