我在 shell 和 node-ssh 中有不同版本的节点 js(以及很多其他东西)

I have different versions of node js (and lot of other things) in shell and node-ssh

我正在尝试通过 node-ssh 执行一些自动化脚本,但它的行为非常奇怪:

当我使用经典 ssh(通过终端或 vs 代码)节点版本是 10.16.3 并且 NVM 命令可用时:

node --version 
v10.16.3

但是当我使用库 node-ssh 和命令 execCommand 时,节点版本似乎是 8.10。 0 并且 NVM 命令不可用:

import node_ssh from 'node-ssh';

const command = 'node --version';
const client = new node_ssh();
await client.connect(sshCredentials);
console.log('\x1b[36m%s\x1b[0m', command, '\x1b[0m');
client.execCommand(command , { cwd: remoteDir });
console.log(result.stdout);
node --version 
v8.10.0

另外,环境变量也不一样。我不知道这里发生了什么。我使用同一台服务器和同一台计算机通过 ssh 连接到此服务器,同一用户使用相同的密钥文件,但它的行为不同。

服务器位于DigitalOcean。 它是 Ubuntu 18.04.3 LTS。 我正在使用 root 用户和 ssh 密钥文件。

我找到问题了: https://www.digitalocean.com/community/questions/node-v-and-nodejs-v-different-output

可以通过从官方 Ubuntu 软件包安装 node.js 而不是通过 NVM 来解决。 https://github.com/nodesource/distributions#debinstall