cmd基本执行逻辑
- 是否是绝对路径,如果该路径下是一个可执行程序文件,则会执行该程序,否则会报错
- 会在 cmd 所操作的目录下寻找执行
- 在系统的内置命令中去寻找执行
- 环境变量中的Path中记载的目录中寻找执行,没有则报错
我们使用 npm 命令能正常使用是因为我们在环境变量中的 Path 中有nodeJs的路径目录,其中就有 npm 命令操作程序。
我们在安装 nodeJs 的时候会自动安装对应的 npm 。
npm run xxx执行过程
在项目中,我们通常使用 npm run xxx 来进行操作项目的运行,打包等。实际上是操作的 package.json 中的 scripts 脚本命令。
例如:
"scripts": {
"dev": "vue-cli-service serve",
"build": "vue-cli-service build",
},
但是我们在实际操作时发现并不能直接使用 vue-cli-service serve 命令, 原因是我们并没有全局安装 vue-cli-service, cmd 命令找不到该执行程序
通过查阅npm 的文档中的npm-run-script 发现实际执行路径应该是:
"scripts": {
"dev": "./node_modules/.bin/vue-cli-service serve",
"build": "./node_modules/.bin/vue-cli-service build",
},
但是我们并不能这样写
因为 npm-run 会将 node_modules/.bin 添加到提供给脚本的PATH中。
我们在进行npm install 安装依赖包的时候,会自动在 .bin 文件夹中生成可执行命令文件,实际执行就是 .bin 文件夹下这些程序