环境变量Path
运行原理
Path 环境变量本质上是一个字符串,它包含多个目录路径,每个路径之间用分号 (;) 分隔。
在命令行中执行命令时,操作系统会根据 Path 环境变量的顺序,依次查找每个目录下的可执行文件。如果在某个目录下找到了与命令名称匹配的可执行文件,就会执行该文件。
优先级
Path 环境变量中的目录路径顺序决定了查找可执行文件的优先级。排在前面的目录优先被查找,如果在前面的目录中找到了可执行文件,就不会再查找后面的目录。
注意:window存在系统环境变量和用户环境变量,读取环境变量时会在系统变量后拼接用户变量 因此系统环境变量优先级 > 用户环境变量优先级
应用加载
-
命令行工具(command line)
命令行工具初始会加载环境变量,运行过程中不会动态监听环境变量的变化,因此修改环境变量后需要新开命令行工具以刷新环境变量。
-
vscode编辑器
vscode窗口初次打开时会加载环境变量,并维护于整个vscode实例内,因此修改环境变量后需要关闭所有vscode窗口,再重新打开以刷新环境变量。
前端依赖
-
项目依赖及依赖命令运行
项目自身运行所需的库和工具,安装在当前工作目录的node_modules下
- npm 会将项目依赖的包安装到
node_modules文件夹下。 - 每个 npm 包都可能包含可执行文件,这些文件通常位于
node_modules/.bin目录下。 - 当在项目根目录执行
npm run <command>命令时,npm 会先在node_modules/.bin目录下寻找对应的可执行文件,如果找不到,才会去系统环境变量的PATH中查找。
- npm 会将项目依赖的包安装到
-
全局依赖及依赖命令运行
系统级的库和工具,安装在npm prefix配置指定的路径下
- npm安装依赖指定为全局时,会将依赖安装npm的
prefix配置指定的路径下。Windows的prefix配置默认是%AppData%/npm,可以通过npm config set prefix “…”进行修改。 - 因此在要执行全局依赖的命令,需要检查环境变量中是否有npm prefix配置的路径。
- npm安装依赖指定为全局时,会将依赖安装npm的
npm依赖命令执行错误的检查步骤
- 检查依赖安装位置
- 检查环境变量
- 检查应用环境变量加载的正确性