mac os vscode 遇到的问题

今年开始就正式步入使用 mac os 系统的时代,使用了11年(2010-2020年)的 windows 系统,终于明白什么叫做转换成本。mac os 系统使用起来,的确十分流畅,没有广告,不用下载杀毒软件。作为开发人员,visual studio code 是必备。在使用过程中也遇到了一些问题,现将其一一记录下来,方便再遇到相同问题时,能够快速反应并解决掉。

问题1:nvm is not compatible with the npm config “prefix”…

现象:使用 mac os 系统后,发现每次打开 vscode,在命令栏 TERMINAL 中都会出现不识别 npm,把 vscode 重新安装后,还是不行。每次打开的时候,也会报下面的错误。

nvm is not compatible with the npm config "prefix" option:
currently set to "/usr/local/bin/nvm/0.35.3/versions/node/v10.21.0"
Run `npm config delete prefix`
or `nvm use --delete-prefix v10.21.0` to unset it.

原因: 我刚开始是使用brew install node 安装过 node,而后来又用 nvm 安装过node,而显示是使用nvm安装的node。只需要把之前的node删除掉,就可以了。

解决办法:执行下面的命令,将通过 brew 命令安装的 node & nvm & npm 都删除掉,只通过 nvm 安装 nodenpm。如果 /usr/local/bin/usr/local/lib 下没有 nodenpmnvm则不用处理。

rm -R /usr/local/lib/node_modules/npm
rm -R /usr/local/bin/npm /usr/local/bin/nvm /usr/local/bin/node
rm -R /usr/local/lib/node_modules/npm/bin/npm-cli.js
rm -R /usr/local/lib/node_modules/nvm/bin/nvm-cli.js
问题2:Error: Cannot find module ‘xxx’

现象:控制台报错 Error: Cannot find module ‘xxx’(例如 Error: Cannot find module ‘nan’,Error: Cannot find module ‘webpack’)

原因:这种情况一般是由于 node_modules 中的版本号和 package-lock.json中锁定的版本不一致导致的,默认是按照 package-lock.json 中的版本号安装和执行。

解决办法:到项目文件夹下,(可以先备份一下项目以防万一)删除node_modules文件和package-lock.json文件。注意不是package.json。最后在项目下通过 npm install 重新安装所依赖的包。

rm -rf node_modules package-lock.json
问题3:complete:13: command not found: compdef

现象: 在安装完 nvm,并在 .bash_profile 添加完 nvm 的环境变量,如下:

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

但在 vscode 中使用 nvm 命令时,控制台会报 complete:13: command not found: compdef

原因:最后一行的命令会执行 compdef,而该命令产生冲突,导致无法识别。

解决办法:十分简单,注释掉最后一行的代码即可。

问题4:GitLens was unable to find Git. Please make sure Git is installed.

现象:在 Mac 升级后,vscode 中发现 Git 居然不能用了,终端控制台 Git 无法使用的错误。

完整的错误信息:

GitLens was unable to find Git. Please make sure Git is installed. Also ensure that Git is either in the PATH, or that 'git.path' is pointed to its installed location.

看了一下Git命令是否能用 git --versiongit --help ,发现还是报上面的错误。于是在终端控制台输入 which git, 找到 git的安装路径 /usr/bin/git

原因:Git 路径被重置为空了。此时需要找到 vscode 设置(左下角头像下面)里面,输入 git.path,打开 setting.json,修改成下面的样子。

  "window.restoreWindows": "preserve",
  "gitlens.advanced.messages": {
    "suppressGitDisabledWarning": true
  },
  "git.enabled": true,
  "git.path": "/usr/bin/git"
}

修改后,再次输入 git --versiongit --help ,还是会报错,错误如下:

Error: Git must be installed and in your PATH!
Error: The following formula:
git cannot be installed as a binary package and must be built from source.
Install the Command Line Tools:
  xcode-select --install

此时,在终端控制台,输入 xcode-select --install,待 xcode 安装完毕重启 vscode,Git 便可以正常使用了。