mac终端使用fish后,在安装nvm时,出现了安装成功但是编辑配置后无法成功source配置文件。
会出现以下的错误:
➜ ~ source .zprofile ~/.nvm/nvm.sh (line 386): Unexpected ')' found, expecting '}' *[!/]*/) ^ from sourcing file ~/.nvm/nvm.sh called on line 7 of file .zprofile from sourcing file .zprofile .: Error while reading file '/Users/zhiyu/.nvm/nvm.sh' ~/.nvm/bash_completion (line 5): Missing end to balance this if statement if ! command -v nvm &> /dev/null; then ^^ from sourcing file ~/.nvm/bash_completion called on line 8 of file .zprofile from sourcing file .zprofile .: Error while reading file '/Users/zhiyu/.nvm/bash_completion' ### 且nvm找不到该命令
无奈在网上搜索了很多次,但是只有官方的安装教程方法,也没得到相对应的解决,无论是从homebrew或者通过git进行安装都没办法正常的使用。
在nvm官方的仓库中找到了相对于的解决办法[传送门]:
# ~/.config/fish/functions/nvm.fish function nvm bass source ~/.nvm/nvm.sh --no-use ';' nvm $argv end # ~/.config/fish/functions/nvm_find_nvmrc.fish function nvm_find_nvmrc bass source ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrc end # ~/.config/fish/functions/load_nvm.fish function load_nvm --on-variable="PWD" set -l default_node_version (nvm version default) set -l node_version (nvm version) set -l nvmrc_path (nvm_find_nvmrc) if test -n "$nvmrc_path" set -l nvmrc_node_version (nvm version (cat $nvmrc_path)) if test "$nvmrc_node_version" = "N/A" nvm install (cat $nvmrc_path) else if test "$nvmrc_node_version" != "$node_version" nvm use $nvmrc_node_version end else if test "$node_version" != "$default_node_version" echo "Reverting to default Node version" nvm use default end end # ~/.config/fish/config.fish # You must call it on initialization or listening to directory switching won't work load_nvm > /dev/stderr
按照上面代码进行相对位置的相对文件进行配置,一般是没有的,创建并把相对文件的代码丢进去就好了,此刻就可以正常的使用nvm的命令了
当然进行上面的那步之前,需要文档里面说的,先安装bass:
### 先clone bass代码 git clone https://github.com/edc/bass.git ### 然后进入到bass文件夹 cd bass ### 进行安装 make install
最最最重要的还是看官方的文档,网上查询还是不是那么靠谱。。。