我在 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
我正在尝试通过 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