mac 安装pnpm 报错 zsh: command not found、.bash_profile和.zshrc 区别、/etc/profile与~/.bash_profile的区别

报错:zsh: command not found: pnpm

在安装pnpm出现下面错误

% pnpm -v
zsh: command not found: pnpm

解决方法: bash shell 中.bash_profile 中配置环境变量

open .zshrc

在弹出的编辑器最下面加入

source ~/.bash_profile

或者

source .bash_profile

这一步就在zshrc执行时将 .bash_profile 全部环境变量加入zsh shell了

保存,然后更新配置

source .zshrc 

执行source .zshrc时报找不到bash_profile,有些mac就是没有bash_profile这个文件,需要手动新建

创建.bash_profile

touch .bash_profile    

这时候就有了bash_profile这个文件,当然是没有内容的空文件,这里又需要你写入

创建global安装任务的目录

mkdir ~/.npm-global

配置npm全局下载时,下载到新的地址目录

npm config set prefix '~/.npm-global'

你再npm i xxx -g就会存储到npm-global的地址下了

open .bash_profile

在弹出的编辑器中增加配置

export PATH=~/.npm-global/bin:${PATH}

保存,更新配置

source .bash_profile

再次运行

% source .zshrc 

报一个错误

% source .zshrc 
Your user’s .npmrc file (${HOME}/.npmrc)
has a `globalconfig` and/or a `prefix` setting, which are incompatible with nvm.
Run `nvm use --delete-prefix v18.19.0 --silent` to unset it.
phoenix@PhoenixdeMBP ~ % source .zshrc
Your user’s .npmrc file (${HOME}/.npmrc)
has a `globalconfig` and/or a `prefix` setting, which are incompatible with nvm.
Run `nvm use --delete-prefix v18.19.0 --silent` to unset it.

执行

%  npm install --location=global pnpm

changed 1 package in 469ms
%  nvm use --delete-prefix v18.19.0 --silent
%  pnpm -v
8.12.0

问题解决了,现在可以使用 pnpm安装项目

.bash_profile和.zshrc 区别

macOS 系统中默认使用 Zsh 作为终端,而 mac.zshrc 文件则是 Zsh 的主要配置文件。

.bash_profile和.zshrc都在用户目录下(~)

.bash_profile需要使用source执行下,方可生效(可能需要手动创建.bash_profile)

.zshrc修改环境变量,保存修改重启终端即可(需要安装oh-my-zsh自动创建.zshrc,直接手动创建.zshrc没有用)

.bash_profile 中修改环境变量只对当前窗口有效,而且需要 source ~/.bash_profile才能使用

.zshrc 则相当于 windows 的开机启动的环境变量

/etc/profile与~/.bash_profile的区别

/etc/profile文件是系统的配置文件,它应用于所有用户。当用户登录时,系统会首先加载/etc/profile。这个文件存储了系统范围的环境变量、系统级别的别名和路径配置等。修改该文件后,必须source一下修改才会生效,对每个用户生效;

~/.bash_profile是每个用户级的配置文件,它只适用于当前登录用户。当用户登录时,系统会加载此文件。用户可以在这个文件中定义自己的环境变量、别名和路径配置等。修改后需要source一下才会生效;

作用范围:
/etc/profile适用于所有用户,而~/.bash_profile只适用于当前登录用户。

加载顺序:
系统会首先加载/etc/profile,然后加载~/.bash_profile。这意味着用户级的配置文件会覆盖系统级的配置文件,因为后者的配置会在前者之后加载。

你可能感兴趣的:(前端报错bug,macos,bash,开发语言)