[英]Getting errors when trying to start app via 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
生態系統.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
我發現唯一的解決方案是通過定義一個特定的端口來運行它,在我的例子中是 3000,感謝 Brandon Aguilar 的評論。 這就是命令
pm2 start yarn --name appname -- start -p 3000
似乎默認情況下它將它運行到端口 80
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.