本文记录macOS克隆新项目,从install看到报错到解决问题的全思路,没难度,希望能给同志们一点点帮助。
今天clone了一个新项目,readme备注了用pnmp install, 并pnpm dev启动。ok,报错之路开始了。
- pnpm的下载,用
sudo npm install -g pnpm,第一个报错,node版本不匹配,目前16,需要18,那么,我们能想到用什么解决这个问题呢?
对,要兼容其他项目的不同node版本,nvm管理node版本。 - 安装nvm,百度到了这俩方法。 可以从Git安装,我选择用homebrew直接安装,
brew install nvm,多么简单快捷是吧。
报错了,最后是说“initialize': Version value must be a string; got a NilClass () (TypeError)”,百度后是“macOS版本升级到非正式版本了,但是homebrew只支持正式版本”。
网上有大量解决方案是:/usr/local/Homebrew/Library/Homebrew/version.rb文件中第368行直接用@version = '10.14.1'给定一个版本号就可以了,事实是行不通,因为每次执行homebrew就自动恢复原数据了,设置的不起作用。
此时想到,既然是homebrew不支持新版本的问题,给它自己升级呢?新版本是否能支持新系统呢……用命令行更新:brew update-reset然后brew upgrade,然后brew -v会发现已经到最新版本了。 3. homebrew的问题解决了,继续用它下载nvmbrew install nvm,此时报错了,内容很多,截取部分有效内容:
dd the following to your shell profile e.g. ~/.profile or ~/.zshrc:
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh" # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
You can set $NVM_DIR to any location, but leaving it unchanged from
/usr/local/Cellar/nvm/0.40.1 will destroy any nvm-installed Node installations
upon upgrade/reinstall.
nvm 0.40.1 is already installed and up-to-date.
To reinstall 0.40.1, run:
brew reinstall nvm
大意是版本问题导致,现在也不太支持目前的macOS版本,nvm是安装了,但是需要自己配置一些内容,然后才能顺利使用nvm。此时如果命令行 nvm -v 会报错:"nvm: command not found",原因是nvm路径没对上,系统找不到它,我们要修改它的取值路径。
我们按照报错提示,逐步添加内容,首先打开~/.profile,添加如下内容:
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh" # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
保存,此时修改并没有生效,还是会报错的,要执行这个文件,在终端里:source ~/.profile。注意:这个文件有可能叫“.bash_profile”。
到这一步,尝试 nvm -v ,成功就继续下一步。如果还是报错"nvm: command not found",那么继续添加文件,跟.profile同层级,名为“.zshrc”,文件内容为source ~/.profile,同样保存并执行:source ~/.zshrc。这两个source执行的路径和名称一定要能对上,否则文件不生效的。
到目前为止, nvm -v 应该能取到值了,nvm安装好了,导出路径也对了,能使用了。
4. 继续回到第一步,用sudo npm install -g pnpm下载pnpm,pnpm -v成功。可以下载项目依赖了。
5. 此时注意,如果刚才的步骤都不在项目文件下,终端要回到项目文件下再次执行以上步骤,source profile文件导出nvm,然后设置npm版本,在使用pnpm下载项目依赖。在项目文件夹下打开终端,执行以下:
source ~/.profile
nvm use 18.12
pnpm install
项目成功启动~