bash 脚本中的节点路径问题

bash 脚本中的节点路径问题

我正在编写一个脚本,该脚本在某一时刻启动一个简单的基于 Node.js 的网站:

cd ../ap-site/ && npm start

当我从终端运行上述命令时没有问题,但是当从我的脚本运行时我得到:

/usr/bin/env: node: No such file or directory

我在用着非易失性目前要管理节点版本,所以我尝试添加nvm use 8.8.1到我的文件中~/.bashrc,然后直接在脚本中获取该文件:

source /home/rescue/.bashrc
cd ../ap-site/ && npm start

我还尝试which npm在终端中使用并直接使用生成的路径,例如:

cd ../ap-site/ && /home/rescue/.nvm/v8.8.1/bin/npm start

但我得到了同样的结果。

关于如何调试情况并从 bash 脚本运行节点项目有什么想法吗?

答案1

很抱歉这么快发布问题和答案,但也许这对某人有用。

虽然我正在采购 bash,但它nvm似乎没有加载,尽管它在我的.bashrc文件中。

我不是直接在脚本顶部获取我的.bashrc设置:nvm

export NVM_DIR="/home/rescue/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
nvm use 8.8.1

一旦我这样做了,我的npm命令就开始工作了。

我仍然不确定为什么采购.bashrc没有按预期工作,因为它包含相同的 3 行代码。

sudo脚本始终以?运行可能相关。

相关内容