npm 语法错误:未预期的识别项'pipefail'

dbf7pr2w  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(134)

我在尝试使用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

我不知道这条线是什么意思,也没有解决问题的线索。

2hh7jdfx

2hh7jdfx1#

我通过删除/home/<username>/.asdf/plugins/nodejs/shims/npm文件,然后执行pm2 start npm --name <process> -- run start来解决此问题。

相关问题