众所周知,vite项目运行的很快,很多开发者也知道vite使用了rollup库打包,用esbuild库进行编译,用了一些rust语言诸如此类;但是在终端执行我们的命令的时候,到底是经过了什么样一个流程进入了vite中执行我们的命令?
有一些了解的开发者知道,我们的项目中的package.json中有那么一个配置项:dev:"vite",也就是说,我们在进行npm run dev的时候,在package.json中获取了一个vite的软链接!
但是一般开发者是没有配置vite,也就是说如果在控制台中直接执行vite,它是执行不了的,会直接有一个“'vite' 不是内部或外部命令,也不是可运行的程序”报错;这当然是vite没有进行配置导致的,但是为什么我们的npm run dev命令可以顺利执行呢?
是因为它第一步指向的是我们npm i安装的项目依赖,在该目录下有我们安装的vite,而该依赖下的package.json中指向了依赖目录下的.bin目录下vite文件,细心的树友就会发现了:下面有三个文件,不过这其中就是一些跨平台(Linux)的一些代码以及一些shell脚本。
如果我们依赖目录下没有vite呢???那么命令是不会直接报错的,它会跑到更上层的npm i -g所安装的包(全局包)里面寻找vite,如果还没有,那还会去环境变量里面溜达一圈,还没有找到,那就只能报错喽~
(转自勋章树APP-DX)