【发布时间】:2016-05-27 12:29:10
【问题描述】:
我在我的 Node.JS 应用程序中使用了一些 ES6 功能,例如 let 关键字。服务器在我的本地机器上工作得很好。在将代码部署到远程机器(可以在线访问)后,我发现了一些奇怪的行为:如果我通过访问远程 shell 来启动服务器,然后执行 gulp,它可以完美运行:
local> ssh user@myserver.com
remote> gulp
但是,如果我通过将命令添加到 SSH 来走捷径,Node.JS 会突然抱怨 ES6 功能:
local> ssh user@myserver.com 'gulp'
...
[10:39:54] [nodemon] 1.8.1
[10:39:54] [nodemon] to restart at any time, enter `rs`
[10:39:54] [nodemon] watching: *.*
[10:39:54] [nodemon] starting `node bin/www`
/home/user/server/routes/searchItem.js:62
let myItem = items.filter(item =>
[10:39:54] [nodemon] app crashed - waiting for file changes before starting...
^^^
SyntaxError: Unexpected strict mode reserved word
为什么会这样?
【问题讨论】:
-
您可以运行
ssh user@myserver.com 'node -v'来检查他尝试使用的节点版本吗? -
你有没有比较过通过ssh运行以下命令并登录的结果:
node --version、echo $NODE_PATH、which gulp、echo $PATH等...