2017-02-26 67 views
0

每当我使用sudo命令运行节点应用程序时,它似乎会在我的Amazon EC2实例(Ubuntu 16.04)上引发错误。但是,只要我在没有sudo的EC2实例上运行它,它就可以正常运行。不过,我在我的本地机器(Mac Sierra OS)上运行它,该应用程序启动并正常运行。使用sudo运行节点进程会引发语法错误

我很好奇,如果有人可能有一个想法,为什么有一个SyntaxError被抛出,只有当我在远程EC2实例上使用sudo命令。

我在本地和远程机器上使用节点v.7.6.0和npm v。4.1.2,使用NVM管理两者的版本。由于语法错误与ES2015或2016语法相关,因此我不确定为什么我的本地计算机能够在Amazon EC2实例(Ubuntu 16.04)无法正常解析时正确解释它。

,我收到的错误如下所示:

/var/www/mindmetrics/node_modules/twitter-crawler/lib/twitter-crawler.js:150 
    api(method, ...params) { 
       ^^^ 

SyntaxError: Unexpected token ... 
    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> (/var/www/mindmetrics/node_modules/twitter-crawler/index.js:20:18) 
    at Module._compile (module.js:409:26) 
    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> (/var/www/mindmetrics/server/router/api.js:9:24) 
    at Module._compile (module.js:409:26) 
    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 module.exports (/var/www/mindmetrics/server/router/index.js:6:20) 

回答

0

我最好的选择将是您的系统上,root有自己的node.js的可执行文件,而且不支持扩展操作版本。

尝试运行sudo node --version并检查它是否确实是v.7.6.0。

+0

我认为这很可能,因为我使用nvm来维护节点的版本 –