美文网首页
2022-06-05

2022-06-05

作者: 姜浩_19强化班 | 来源:发表于2022-06-05 22:22 被阅读0次

一、运行npm run xxx的时候发生了什么

https://juejin.cn/post/7078924628525056007

package.json文件

执行 npm run xxx 的时候,首先会去项目的 package.json 文件里找script里找对应的xxx,然后执行xxx 的命令

例如:启动vue项目npm run serve的时候,实际上就是执行了vue-cli-service serve 这条命令。

// package.json文件

{

  "name": "h5",

  "version": "1.0.7",

  "private": true,

  "scripts": {

    "serve": "vue-cli-service serve"

  },

}

为什么不直接执行vue-cli-service serve

因为 直接执行 vue-cli-service serve,会报错,因为操纵系统中没有存在 vue-cli-service 这条指令

我们在安装依赖的时候,通过 npm i xxx 来执行,例如 npm i @vue/cli-serve ,npm在安装这个依赖的时候,就会在 node_modules/.bin/ 目录中创建好 vue-cli-service   为名的几个可执行文件了     

.bin 目录,这个目录不是任何一个npm包。目录下的文件,表示这是一个个软连接,打开文件可以看到文件顶部写着 #!/bin/sh, 表示这是一个脚本

由此知道,当使用 npm run serve 执行 vue-cli-service serve 时,虽然没有安装 vue-cli-service 的全局命令,但是npm 会到 ./node_modules/.bin 中找到 vue-cli-service文件作为脚本来执行,则相当于执行了 ./node_modules/.bin/vue-cli-service serve(最后的serve作为参数传入)

软连接文件是哪里来的呢?

可以看到,它存在项目最外层的 package-lock.json文件中

从 package-lock.json 中可知,当我们npm i 整个新建的vue项目的时候,npm 将 bin/vue-cli-service.js 作为 bin 声明了。

所以在 npm install 时,npm 读到该配置后,就将该文件软链接到 ./node_modules/.bin 目录下

为何node_modules/bin中有三个vue-cli-service文件

如果我们在 cmd 里运行的时候,windows 一般是调用了 vue-cli-service.cmd,这个文件

总结

运行 npm run xxx的时候,npm 会先在当前目录的 node_modules/.bin 查找要执行的程序,如果找到则运行;

没有找到则从全局的 node_modules/.bin 中查找,npm i -g xxx就是安装到到全局目录;

如果全局目录还是没找到,那么就从 path 环境变量中查找有没有其他同名的可执行程序。

相关文章

  • 2022-06-05 思考成长周复盘(第102/130周)

    一 时间 2021-05-30 ~ 2022-06-05 二 行动回顾与反思 1 生活作息(2022年度早起目标:...

  • 家庭分享会 | 第五期:规划之你想做但没做的那些事

    时间:2022-06-05主题:人生规划之你想做但没做的那些事参与人:Smile、古德文发起人:古德文 一、背景 ...

  • 约练收获

    中原焦点团队 坚持分享1420天 2022-06-05 今天的咨询,让我想到刘老师在讲课中说到:具体化是去病理...

  • 戒定慧·《感恩日志》重启第23天

    2022-06-05(周日)五月初七 【05:56】 01、感恩夏日清晨。是蛙鸣?昨晚睡前听到几声;早起,亦是ta...

  • 故乡的离殇

    2022-06-05 周日 雨 大雨来了 猛兽一般。 一夜的袭击,老家的旧房子不堪岁月的沧桑与负重,终于还是...

  • 和一切过往和解

    2022-06-05 周日 北京 会是一个晴天吧 其实这段时间,偶尔身边会有人跟我说,你有多薄情多坏,我其实,会给...

  • 为什么我们那么讨厌孩子哭?

    教育反思日志2022-06-05 事件: 今天早上,女儿发现自己心爱的两个本子留在姥姥家了,孩子猛地着急了,说了这...

  • 标配

    2022-06-05 昨天下楼倒垃圾,走在小区里,春风拂面,久违的舒适感! 走到垃圾房附近,迎面走来一个大妈,向我...

  • 要会吃(食之一)

    要会吃(食之一) 摆老实龙门阵的人2022-06-05 00:00发表于上海 图:网络 文:魏治祥 要会...

  • 爱憎分明到底好不好呢?

    2022-06-05 夜晚的灯在雨中会显得格外孤单,因为照不亮别人,却总能照清自己。以前多多少少会有失眠,所...

网友评论

      本文标题:2022-06-05

      本文链接:https://www.haomeiwen.com/subject/hyrdmrtx.html