我有一个命令必须在安装了 Node 16 的情况下运行,没有其他版本。但是,我需要安装最新版本的 Node 才能正常使用。
如何配置(也许使用环境变量),以便只有一个命令使用 Node 16?
像
nvm use 16 && node -v && nvm use 19
这样的东西太慢了,但是 .zshrc
中的别名是一种选择。
我在我的一个项目中所做的是:
我已切换到节点 16:
nvm use 16
。
之后which node
显示了这条路径:/root/.nvm/versions/node/v16.19.0/bin/node
所以我只是为此可执行文件创建了一个符号链接:
ln -s $(which node) /usr/bin/node16
最后我切换回版本:
nvm use system
现在您可以通过
node
使用默认节点版本,并通过 node16
使用此命令所需的节点版本。
我不确定这是否能回答您的问题。但我有太多类似的需求,Go 程序使用 Golang
os/exec
包触发 Node.js 程序。该 Node.js 程序必须在特定版本的节点上运行(在我的例子中为 14.17.0),并且我使用的是 nvm
,它在我的系统中设置了 17.5.0。
因此,我可以在运行 Go 程序之前使用环境变量集动态地将版本从 17.5.0 切换到 14.17.0。
export NVM_BIN=/Users/<username>/.nvm/versions/node/v14.17.0/bin
export PATH=$PATH:$NVM_BIN # make sure no other node version bin path is in the PATH variable