Typescript YouCompleteMe错误:找不到可执行文件';npm';。安装TSServer需要npm
在安装YouCompleteMe for vim时,我想安装对Java和Javascript的支持。因此,我按照以下说明运行:Typescript YouCompleteMe错误:找不到可执行文件';npm';。安装TSServer需要npm,typescript,npm,vim,youcompleteme,Typescript,Npm,Vim,Youcompleteme,在安装YouCompleteMe for vim时,我想安装对Java和Javascript的支持。因此,我按照以下说明运行: sudo /usr/bin/python3.6 ./install.py --java-completer --ts-completer 但是,它会出现以下错误消息: ... [100%] Linking C shared library /home/vagrant/.vim/bundle/YouCompleteMe/third_party/ycmd/third_p
sudo /usr/bin/python3.6 ./install.py --java-completer --ts-completer
但是,它会出现以下错误消息:
...
[100%] Linking C shared library /home/vagrant/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/cregex/regex_3/_regex.so
[100%] Built target _regex
Downloading jdt.ls from http://download.eclipse.org/jdtls/snapshots/jdt-language-server-0.54.0-202004152304.tar.gz...
Extracting jdt.ls to /home/vagrant/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/eclipse.jdt.ls/target/repository...
Done installing jdt.ls
ERROR: Unable to find executable 'npm'. npm is required to install TSServer.
这是可以理解的,除非我已经在我的路径上设置了npm,如下所示:
=> npm -v
6.13.4
=> which npm
/home/vagrant/.nvm/versions/node/v8.17.0/bin/npm
有人猜测为什么支持ts completer的YouCompleteMe无法安装吗
有人猜测为什么支持ts completer的YouCompleteMe无法安装吗
安装失败,因为您正在以sudo
的身份运行install.py,并且nvm
安装节点的位置不在安全路径中。当脚本作为sudo
运行时,将使用secure\u路径
您可以看到PATH
和secure\u PATH
的不同内容,如下所示:
$ echo 'echo $PATH' | sudo sh # secure_path
$ echo 'echo $PATH' | sh # your user PATH
/usr/bin/python3.6 ./install.py --java-completer --ts-completer
您还可以确认sudo
在其路径上缺少npm
,如下所示:
$ which npm
$ sudo which npm
怎么办
一个选项是在不使用sudo的情况下运行脚本,如下所示:
$ echo 'echo $PATH' | sudo sh # secure_path
$ echo 'echo $PATH' | sh # your user PATH
/usr/bin/python3.6 ./install.py --java-completer --ts-completer
另一种方法是将nvm bin内容复制到安全路径
位置之一。/usr/local/bin
就是其中之一
$ find $(which npm | xargs dirname) -type l -o -type f | sudo xargs cp -t /usr/local/bin
# test
$ sudo npm -v
$ sudo node -v
执行此操作后,安装程序将发现npm
在以sudo方式运行时,它可能不在路径上