gpt4 book ai didi

node.js - 如何通过EB的NodeCommand调用多个命令?

转载 作者:太空宇宙 更新时间:2023-11-04 01:47:26 25 4
gpt4 key购买 nike

上下文

假设 AWS Elastic Beanstalk 上有一个简单的 Node 应用程序(如 eb-node-express-sample )和默认 nodecommand.config 文件,如下所示:

option_settings:
aws:elasticbeanstalk:container:nodejs:
NodeCommand: npm start

问题

如何调用多个 bash 命令来代替 npm start?我希望能够执行以下操作:

    NodeCommand: echo 'Hello' && npm start

或者:

    NodeCommand: |
echo 'Hello'
npm start

但似乎第一个单词之后的所有内容实际上都作为单个参数传入,导致 /var/log/nodejs/nodejs.log 中出现以下输出:

'Hello' && npm start
'Hello' && npm start
'Hello' && npm start
...

# Logged repeatedly as the server tries and fails to start,
# apparently invoking `echo "'Hello' && npm start"` each time...

有没有办法绕过这个愚蠢的限制并直接运行多个 bash 命令?

动机

我有一个 Lerna 应用程序,它的根目录中没有任何有用的 start 脚本,而是在 packages/api/ 中有一个 start 脚本。我在这里的特殊需求是能够在运行 start 之前更改目录,但我正在寻找一个通用的解决方案来解决运行多个命令的问题。

最佳答案

我的解决方法是将脚本添加到package.json:

"scripts": {
"start": "node app.js",
"start:eb": "echo 'Hello' && npm start"
}

用法:

option_settings:
aws:elasticbeanstalk:container:nodejs:
NodeCommand: npm run start:eb
<小时/>

如果它与其他人相关,我来到这里是因为由于服务器未启动而导致 nginx 出现不明确的 502 Bad Gateway 错误,但 /var/log/nodejs/nodejs.log 中绝对没有任何内容。我终于意识到这是由于 NodeCommand 被 AWS 破坏了。

关于node.js - 如何通过EB的NodeCommand调用多个命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50938556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com