当使用 安装节点时nvm
,它在终端中运行良好 - 您可以使用 运行节点应用程序node path/to/app.js
,正如您期望的那样。
但是,如果您在 Kubuntu/KDE 中创建应用程序菜单启动器,它将无法工作 - 除非您明确提供完整路径,否则它无法找到节点二进制节点/home/xxx/.nvm/versions/node/v12.13.1/bin app.js
。当直接安装节点(通过 apt 而不是 nvm)时,这不是必需的。
但是,即使指定完整路径对 npm 也不起作用。例如,使用命令创建一个菜单启动器bash -c "cd /path/to/project ; /home/xxx/.nvm/versions/node/v12.13.1/bin/npm run script-name; read -n 1"
,结果显示的是终端窗口/usr/bin/env: 'node': No such file or directory
(最后read -n 1
只是为了防止终端在错误发生后立即关闭)。
所以问题是:为什么 KDE 的应用程序菜单找不到 node/npm 二进制文件,更重要的是,如何创建一个可以与 npm 一起使用的启动器?
答案1
找到答案这里。
您只需将 nvm 添加的 3 行移到 ~/.bashrc:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
进入 ~/.profile。注销并登录,它就可以正常工作了。