提问者:小点点

"哪个nvm"没了


我在ubuntu机器上安装了NVM,但是,当我把它放在crontab中以在重启时执行时:

@reboot nvm use 0; 

它不起作用,我收到了来自cron守护进程的邮件,说:

/bin/sh: 1: nvm: not found

所以,我认为这是一个路径问题,并试图找到NVM安装在哪里。令我惊讶的是,我得到了空结果:

root@vps-1145280-18735:~# which nvm
root@vps-1145280-18735:~# 

但是,NVM本身确实有效,即使在重新启动后:

root@vps-1145280-18735:~# nvm

Node Version Manager
...

这很奇怪——当“哪个nvm”为空时,系统怎么会找到nvm程序?!

更重要的是,为了让cron程序在启动过程中找到NVM,我应该怎么做?


共1个答案

匿名用户

nvm命令不是文件,而是shell函数。

source~/. nvm/nvm.sh将这些函数添加到您当前的shell中。因为这些命令不是文件,所以当您哪个nvm时,它们不会显示出来。

. nvm/nvm.sh文件中,您可以看到定义了提供该功能的nvm(){…}函数。

cron可能使用不同的用户,并且该用户需要在运行之前将source~/. nvm/nvm.sh添加到其shell上下文中。