微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试通过 yarn & pm2 启动应用程序时出错

如何解决尝试通过 yarn & pm2 启动应用程序时出错

尝试通过 yarn 和 pm2 启动节点 (next.js) 应用程序时收到错误。我的 google fu 没有发现任何有用的东西。我怀疑问题出在 nvm 上,但我没有足够的经验来了解如何解决它。

Ubuntu 20.04
nvm 0.38.0
节点 v14.5.0
纱线 1.22.10
pm2 4.5.6

ecosystem.config.js

module.exports = {
  apps: [
    {
        name: "next",script: "yarn",interpreter: "bash",args: "start:next",instances: 1,env: {
            NODE_ENV: "development",},env_staging: {
            NODE_ENV: "production",env_production: {
            NODE_ENV: "production",}
    }
]

}

通过以下方式启动文件

pm2 start ecosystem.config.js --env staging

pm2 start yarn --interpreter bash --name next -- start:next

接收错误

[TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option)
/home/deploy/.pm2/pm2.log last 15 lines:
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] online
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] exited with code [2] via signal [SIGINT]
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] starting in -fork mode-
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] online
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] exited with code [2] via signal [SIGINT]
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] starting in -fork mode-
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] online
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] exited with code [2] via signal [SIGINT]
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] starting in -fork mode-
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] online
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] exited with code [2] via signal [SIGINT]
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] starting in -fork mode-
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] online
PM2        | 2021-04-08T18:33:28: PM2 log: App [express:0] exited with code [2] via signal [SIGINT]
PM2        | 2021-04-08T18:33:28: PM2 log: Script /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn had too many unstable restarts (16). Stopped. "errored"

/home/deploy/.pm2/logs/express-out.log last 15 lines:
/home/deploy/.pm2/logs/express-error.log last 15 lines:
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 3: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 4: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 5: use strict: command not found
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 7: var: command not found
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 8: Syntax error near unexpected token `('
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 8: `var majorVer = parseInt(ver.split('.')[0],10);'
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 3: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 4: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 5: use strict: command not found
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 7: var: command not found
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 8: Syntax error near unexpected token `('
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 8: `var majorVer = parseInt(ver.split('.')[0],10);'
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 3: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 4: /bin: Is a directory
0|express  | /home/deploy/.nvm/versions/node/v14.5.0/bin/yarn: line 5: use strict: command not found

解决方法

--interpreter bash 是你的问题。 yarn 不是一个 bash 脚本,而是一个 JS 程序。这样做:

pm2 start yarn --name appname -- start:next

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。