我用 pm2 安装 node.js,一切都安装得很好,但是当我尝试执行 pm2 monit
时给我这个错误。
$ pm2 monit
/home/node/.nvm/versions/node/v8.11.3/lib/node_modules/pm2/node_modules/fast-printf/dist/src/tokenize.js:4
const TokenRule = /(?:%(?<flag>([+0-]|-\+))?(?<width>\d+)?(?<position>\d+\$)?(?<precision>\.\d+)?(?<conversion>[%BCESb-iosux]))|(\\%)/g;
^
SyntaxError: Invalid regular expression: /(?:%(?<flag>([+0-]|-\+))?(?<width>\d+)?(?<position>\d+\$)?(?<precision>\.\d+)?(?<conversion>[%BCESb-iosux]))|(\\%)/: Invalid group
at Object.<anonymous> (/home/node/.nvm/versions/node/v8.11.3/lib/node_modules/pm2/node_modules/fast-printf/dist/src/tokenize.js:4:19)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/node/.nvm/versions/node/v8.11.3/lib/node_modules/pm2/node_modules/fast-printf/dist/src/createPrintf.js:5:20)
at Module._compile (module.js:652:30)
我尝试了服务器 nodejs 版本,但总是给我这个错误。
答案 0 :(得分:0)
如果您将正则表达式粘贴到正则表达式沙箱中,如下所示:
https://regex101.com/r/GkwWH2/1
您会看到它没有显示任何语法错误。
那会让我怀疑您正在运行 Node JS 的后级版本。事实上,如果您查看堆栈跟踪,您会发现您正在运行 Node 8.11.3
<块引用>at Object.<anonymous> (/home/node/.nvm/versions/node/v8.11.3/lib/node_modules/pm2/node_modules/fas
该正则表达式正在使用直到 Node v10.* 才出现在 Node.js 中的功能(例如命名捕获组)。
我建议您更新到最新的 LTS 版本的 Node,版本 14.*:从您的堆栈跟踪来看,您似乎正在使用 NVM,所以这应该是一个简单的问题
sudo nvm install lts/fermium
应该这样做。