PM2 - SyntaxError:严格模式之外尚不支持块范围声明
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PM2 - SyntaxError:严格模式之外尚不支持块范围声明相关的知识,希望对你有一定的参考价值。
我目前正在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?
任何输入都非常感激,因为我已经被困在这个太久了!!
答案
'use strict';
将上面的代码行添加到脚本文件的第一行。如果希望将变量限定为let
中严格模式支持的块,则使用node v4
。
有关详细信息,请参阅documentation。
另一答案
@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$
以上是关于PM2 - SyntaxError:严格模式之外尚不支持块范围声明的主要内容,如果未能解决你的问题,请参考以下文章
Angular:在 Chrome 的严格模式之外尚不支持块范围的声明
未捕获的语法错误:在严格模式之外尚不支持块范围的声明(let、const、函数、类)[重复]
流星不会启动。 ejson.js 中的“在严格模式之外尚不支持块范围声明(let、const、函数、类)”