PM2-SyntaxError:严格模式之外尚不支持块范围的声明

时间:2019-04-25 05:46:10

标签: node.js ubuntu server coffeescript pm2

我当前正在Ubuntu服务器上安装NodeJS服务。该应用程序是用coffeescript编写的,并且可以很好地运行。这是我设置项目的方式:

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不知何故?

任何输入都将不胜感激,因为我坚持太久了!

3 个答案:

答案 0 :(得分:2)

我在节点版本4.x上有相同的问题

降级了pm2,并且可以正常工作。

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

答案 1 :(得分:0)

'use strict';

将上面的代码行添加到脚本文件的第一行。当您希望将变量的作用域限定为let中严格模式支持的块时,使用node v4

有关更多详细信息,请参见documentation

答案 2 :(得分:0)

@Vishnu Sing这是完整的输出。 index.js文件如下所示:

console.log('Hello World');
ubuntu@ip-172-31-32-5:~/test-project$ nano index.js 
ubuntu@ip-172-31-32-5:~/test-project$ node -v
v10.15.3
ubuntu@ip-172-31-32-5:~/test-project$ sudo pm2 start index.js
/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)
ubuntu@ip-172-31-32-5:~/test-project$