我在尝试使用pm2部署NodeJS应用程序(使用NextJS构建)时遇到了这个问题。我按照here描述的说明进行操作。
我尝试执行pm2 start
命令似乎有效,如下面的代码片段所示。┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 0 │ experti │ fork │ 0 │ online │ 0% │ 25.7mb │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
个
但是当我运行pm2 list
时,前面的执行结果是error。┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 0 │ process │ fork │ 15 │ errored │ 0% │ 0b │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
我检查了answer所描述的pm2日志,它将我引导到以下日志:`
SyntaxError: Unexpected identifier 'pipefail'
at Object.compileFunction (node:vm:360:18)
at wrapSafe (node:internal/modules/cjs/loader:1088:15)
at Module._compile (node:internal/modules/cjs/loader:1123:27)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at Object.<anonymous> (/home/equitica/.npm/_npx/5f7878ce38f1eb13/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
at Module._compile (node:internal/modules/cjs/loader:1159:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
/home/<username>/.asdf/plugins/nodejs/shims/npm:4
set -o pipefail
^^^^^^^^
`
因此,我检查了日志指定的文件,并发现了此行(如下所示):
#! /usr/bin/env bash
set -eu
set -o pipefail <-- this line is probably the problem
我不知道这条线是什么意思,也没有解决问题的线索。
1条答案
按热度按时间2hh7jdfx1#
我通过删除
/home/<username>/.asdf/plugins/nodejs/shims/npm
文件,然后执行pm2 start npm --name <process> -- run start
来解决此问题。