Elastic Beanstalk(Node.js)上的html-pdf问题

问题描述 投票:0回答:1

我在使用html-pdf将phantomjs-prebuilt安装在Elastic Beanstalk上时遇到严重而间歇的问题。我已经尝试了所有可以找到的解决方案,但是我对如何解决这些问题并不精通。我什至无法弄清楚如何通过SSH进入实例,因此请像对待新手一样对待我。我当前遇到的错误是:

> node server.js

html-pdf: Failed to load PhantomJS module. { Error: Cannot find module 'phantomjs-prebuilt'
    at Function.Module._resolveFilename (module.js:548:15)
    at Function.Module._load (module.js:475:25)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/var/app/current/node_modules/html-pdf/lib/pdf.js:7:19)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3) code: 'MODULE_NOT_FOUND' }
Server is running.

我在ebextensions中尝试了不同的安装脚本,增加了实例(t2.micro-t2.small-t2.medium),一个名为.npmrc的文件以及许多其他内容。

如何永久解决此问题?

[我可以在运行npm install和html-pdf lib的时候就设法在本地安装phantoms-prebuild,但是已经运行了好几年,但是后来又重新出现了,而无需更改package.json。

任何帮助,不胜感激!让我知道您需要查看什么代码!

编辑:我刚刚在实例中设置了CLI和SSH。在那里,我运行了命令:

sudo npm install -g [email protected] --unsafe-perm

然后

sudo npm install -g phantomjs-prebuilt --unsafe-perm

但是重新启动应用程序时,我仍然收到完全相同的错误消息。

node.js amazon-web-services phantomjs amazon-elastic-beanstalk node-html-pdf
1个回答
0
投票

对于在Elastic Beanstalk上使用PhantomJS遇到严重麻烦的人,最终解决我的问题的是安装AWS CLI,并通过设置EB的步骤来进行:

eb ssh [ENV] [REGION] - Don't worry, the CLI will guide you

并且在使用具有ElasticBeanstalkFullAccess(和控制台密码)的用户在线配置IAM之后,然后在以下位置使用aws cli的配置文件:

~/.aws/config and credentials with the keys and secrets from IAM

最后使用eb ssh连接到环境,然后运行:

sudo npm install -g phantomjs-prebuilt --unsafe-perm
sudo npm install html-pdf -g (will give deprecated warning)
sudo npm link html-pdf
sudo npm link phantomjs-prebuilt

最后,通过仪表板重新启动应用服务器并检查日志(最后100行)-应该只是:

> node server.js

Server is running.

或类似。祝你好运。

感谢Paul-JO为我工作的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.