首页 > 解决方案 > PM2 - SyntaxError:在严格模式之外尚不支持块范围的声明

问题描述

我目前正在 Ubuntu 服务器上安装 NodeJS 服务。该应用程序是用咖啡脚本编写的,并且可以自行运行。这就是我设置项目的方式:

cd ~/test-project
nvm use v4.9.1
npm install
pm2 start index.js

但是,当我尝试使用 pm2 启动它时,出现以下错误:

/usr/local/lib/node_modules/pm2/node_modules/needle/node_modules/debug/src/node.js:132
    let val = process.env[key];
    ^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/usr/local/lib/node_modules/pm2/node_modules/needle/node_modules/debug/src/index.js:9:19)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)

在做了一些测试之后,无论我从什么脚本开始,似乎都会出现这个错误 pm2 所以一定有一些东西没有正确配置..

我不知道这是否重要,但我尝试运行的脚本需要节点 v4.9.1,所以我使用 NVM 来使用该版本,在我看来,它试图以某种方式使用相同的节点版本运行 pm2?

非常感谢任何输入,因为我已经坚持了太久了!

标签: node.jsubuntuservercoffeescriptpm2

解决方案


我在节点版本 4.x 上遇到了同样的问题,

降级 pm2 并且它工作。

npm uninstall -g pm2
npm install -g pm2@3.0.4

推荐阅读