例如,输入npm run serve,这时候我们在package.json文件下,我们找到当我们执行npm run serve的时候,看到都知道执行的是右边的内容,那问题来了,我们直接执行右边好了,但是如果直接执行右边vue-cli-service serve就会报错,提示找不到对应的指令,因为操作系统中没有存在vue-cli-service serve这一条指令
那为什么执行npm run serve 相当于执行右边的指令,怎么就不会报错?因为在我们执行npm install 对应依赖包的时候,我们执行了下面这条指令 npm i @vue/cli-service 这时候我们发现在node模块下的bin文件下,我们找到了对应生成的一个文件(软链接脚本文件)所以当我们执行npm run serve的时候,就相当于是./node_modules/.bin/vue-cli-service serve
那软链接脚本文件指向哪里呢?
我们全局搜索vue-cli-service指令,发现有个packagelock.json文件下,可以找到这条指令的对应关系,
总结: npm run xxx 其实就是 node_modules/bin 中找到软链接文件 再找到对应的js文件执行
最后说一下package-lock.json的作用,之前一直做项目没有太注意,在看了一些文章和资源有提到这个文件,记录一下,这个是为了避免一个项目多人开发中,更新安装的版本有差异,因为在package.json里有的版本是^,这个只是大版本固定,但是小版本还是会有更新,所以出现这个package-lock.json用来锁定版本,统一让所以开发多人的版本保持一致,不总结的对不对,不对的还请高手指出