范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

三面面试官运行npmrunxxx的时候发生了什么?

  事情是这样的,直接开讲
  面试官:npm run xxx的时候,发生了什么?讲得越详细越好。
  我(心想,简单啊): 首先,DNS 解析,将域名解析成 IP 地址,然后
  TCP 连接,TCP 三次握手...
  面试官:停停,我问的不是从URL输入到页面展现到底发生什么?,是npm run xxx的时候,发生了什么。
  我(尴尬,条件反射地以为是问的八股文):emmmm,我记得 npm run xxx的时候,首先会去项目的package.json文件里找scripts 里找对应的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 而要执行npm run serve  呢?
  我(支支吾吾):emm,因为  npm run serve  比较简短,比较好写。
  面试官:你再想想。
  我(啊?不对吗,对哦,我想起来了): 因为 直接执行 vue-cli-service serve ,会报错,因为操作系统中没有存在vue-cli-service 这一条指令
  面试官: 哦,对对对,不错不错,哟西哟西!
  我(嘿嘿,稳了,这次我要30k): 嘻嘻!
  面试官:那既然 vue-cli-service 这条指令不存在操作系统中,为什么执行npm run serve 的时候,也就是相当于执行了vue-cli-service serve  ,为什么这样它就能成功,而且不报指令不存在的错误呢?
  我(啊?要不你还是把我鲨了吧,不想再勉强作回答):不好意思,这个我还没了解过。
  面试官:emmm,好吧,没关系,我们做下一道算法题吧:....
  ....
  后面无关此次文章的内容,就省略过了。
  面试官:好的,此处面试到此结束,我们会在一周内回复您的面试结果
  哔哔哔...(电话挂断)
  唉。看来是凉了
  为什么执行 npm run serve 的时候,这样它就能成功,而且不报指令不存在的错误呢?
  我赶紧问问了大佬朋友这一过程到底是发生了什么
  经过一番讨论,终于找到了答案。
  不服输的我,赶紧回拨了面试官的电话号码。
  我:喂,面试官,您好,我已经找到答案了,可以麻烦您再听一下吗?
  面试官:嗯,可以啊,请讲。
  我:我们在安装依赖的时候,是通过npm i xxx 来执行的,例如  npm i @vue/cli-service ,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 作为参数传入)。
  面试官:可以啊,真不错,但是我还想继续问问,你说.bin 目录下的文件表示软连接,那这个bin目录下的那些软连接文件是哪里来的呢?它又是怎么知道这条软连接是执行哪里的呢?
  我(窃喜,这个我们刚刚也讨论了):我们可以直接在新建的vue项目里面搜索vue-cli-service
  可以看到,它存在项目最外层的 package-lock.json 文件中
  从 package-lock.json 中可知,当我们npm i 整个新建的vue项目的时候,npm 将 bin/vue-cli-service.js 作为 bin 声明了。
  所以在 npm install 时,npm 读到该配置后,就将该文件软链接到 ./node_modules/.bin 目录下,而 npm 还会自动把node_modules/.bin加入$PATH,这样就可以直接作为命令运行依赖程序和开发依赖程序,不用全局安装了。
  假如我们在安装包时,使用  npm install -g xxx  来安装,那么会将其中的 bin 文件加入到全局,比如 create-react-app 和 vue-cli ,在全局安装后,就可以直接使用如 vue-cli projectName 这样的命令来创建项目了。
  面试官:搜噶,也就是说,npm i 的时候,npm 就帮我们把这种软连接配置好了,其实这种软连接相当于一种映射,执行npm run xxx 的时候,就会到 node_modules/bin中找对应的映射文件,然后再找到相应的js文件来执行。
  我(疯狂点头):嗯嗯,是的,就是这样
  面试官:我有点好奇。刚刚看到在node_modules/bin中 有三个vue-cli-service文件。为什么会有三个文件呢?
  我:如果我们在 cmd 里运行的时候,windows 一般是调用了  vue-cli-service.cmd ,这个文件,这是 windows 下的批处理脚本:@ECHO off GOTO start :find_dp0 SET dp0=%~dp0 EXIT /b :start SETLOCAL CALL :find_dp0  IF EXIST "%dp0% ode.exe" (   SET "_prog=%dp0% ode.exe" ) ELSE (   SET "_prog=node"   SET PATHEXT=%PATHEXT:;.JS;=;% )  endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%..@vuecli-servicebinvue-cli-service.js" %*
  所以当我们运行 vue-cli-service serve 这条命令的时候,就相当于运行 node_modules/.bin/vue-cli-service.cmd serve 。
  然后这个脚本会使用 node 去运行 vue-cli-service.js 这个 js 文件
  由于 node 中可以使用一系列系统相关的 api ,所以在这个 js 中可以做很多事情,例如读取并分析运行这条命令的目录下的文件,根据模板生成文件等。 # unix 系默认的可执行文件,必须输入完整文件名 vue-cli-service  # windows cmd 中默认的可执行文件,当我们不添加后缀名时,自动根据 pathext 查找文件 vue-cli-service.cmd  # Windows PowerShell 中可执行文件,可以跨平台 vue-cli-service.ps1
  面试官:原来如此,不错嘛小伙子,短短时间内就掌握清楚了,看来学习能力很强,不错不错,我很看好你,我会催hr尽快回复你的。先这样了,拜拜
  我(欣喜若狂,功夫不负有心人啊):好啊,好啊,拜拜
  哔哔哔...(电话挂断)
  过了三十分钟....
  今天是个好日子,心想的事儿都能成,今天是个好日子,打开了家门咱迎春风...(手机铃声响起)。
  我:喂,您好。
  hr:您好,我是xxx公司的hr,根据你面试的优秀表现,恭喜你获得了我司的offer,经过我最大的努力,我给你争取到了最大的薪资,薪资是月薪3500,您看满意吗?
  我:....
  哔哔哔....(电话挂断)
  tmd,c
  总结运行 npm run xxx的时候,npm 会先在当前目录的 node_modules/.bin 查找要执行的程序,如果找到则运行; 没有找到则从全局的 node_modules/.bin 中查找,npm i -g xxx就是安装到到全局目录; 如果全局目录还是没找到,那么就从 path 环境变量中查找有没有其他同名的可执行程序。 参考文章
  https://blog.51cto.com/u_15077533/4531157
  https://juejin.cn/post/6971723285138505765
  原文地址:
  https://www.cnblogs.com/sunny-lucky/p/16054660.html

沙发后面放个架,美观隐蔽来收纳现在有很多家庭在装修客厅的时候,利用沙发后面的空间,放上一个置物架,上面可以放上绿植和摆设作为装饰,底下还能作为储藏柜来收纳物品,既美观又好用。沙发后面的置物架,不占用太多的空间,厨房吸油烟机究竟安装什么样的好厨房对于我们每个家庭都很重要,因为我们的一日三餐要在里面完成,在下厨的过程中难免会产生大量的油烟,为了厨房的环境更清洁,每家厨房都会安装上吸油烟机,那么对于吸油烟机伙伴们又了解多少客厅阳台到底封不封,看完就不纠结了买了新房准备装修的伙伴往往会纠结一件事,那就是客厅阳台到底封不封,要是封上了都有哪些好处?不封又有何影响?那么客厅阳台究竟是封好还是不封好呢?现在绝大多数商品房的阳台都是在交房时就柜子上的抽屉这样设计,收纳不是问题在收纳问题上对于每个家庭来说都非常的重视,尤其是小户型,更要巧妙地利用空间。通常我们都会用柜子收纳物品,比如衣柜橱柜要是在柜子上安装抽屉,那收纳效果可就不一样了。柜子上安装普通抽屉玄关要宽敞漂亮,只需三招就搞定在新家装修的时候,我们通常都会把重点放在客厅,因而忽略了玄关。其实玄关才是进入室内的第一个门面,一个好的玄关不仅可以让我们的家居生活更加的精致,实用性还特别的强。玄关设计看似简单,把阳台变洗衣间如何来弄,就得这样设计阳台是与自然界最亲密接触的地方,这里有着最充足的阳光和最开阔的视野,我们可以把它打造成休闲区花园茶室洗衣间等等,今天咱们就来说说是如何把阳台变成一个宽敞好用的洗衣间的。要想把阳台变新房装修瓷砖怎么选,正确铺贴才露脸在新房装修当中,瓷砖是最主要的装修材料之一,地面要是铺上优质的瓷砖,会提高房间整体的装修效果,因此瓷砖在选择上显得非常的重要,那么瓷砖都有哪些种类,我们又该如何来挑选它呢?瓷砖的种小户型装修技巧都在这,记得收藏哦小户型由于空间小,因此在装修的时候要讲究一些技巧,胡乱的去装它,不仅空间会显得很拥挤,而且看上去还更加的杂乱不堪,那么小户型具体该如何布置好呢?小户型在装修上要掌握好色调的搭配区域厨房究竟选什么门好,装修师傅跟你聊一聊买房子是人生中的头等大事,这房子买回来了首先要面临的就是装修,室内布置得好住进去才会更加的舒适。就拿厨房来说,我们一日三餐的食物都要在这里完成,油烟大是众所周知的,如果密封做的不好夏天卫生间里总返味儿,原来是把它装错了伙伴们也许有过同感一到夏天家里的卫生间就会有一股刺鼻难闻的味道,弄得满屋到处飘,就算我们清洁得很干净都没有什么用,这种异味儿到底来自哪里呢?卫生间里有异味儿大都来自下水道,这时候我这些家具原来是用塑料筐做的,太神奇了塑料筐也许伙伴们并不陌生,在水果店经常会见到,人们用它来装水果,等水果卖掉了就会把塑料筐当作废品处理掉。其实这些塑料筐还有很多的用途,我们还可以利用它们来改造成家具。旧塑料筐经过一
MAIXII上市,全志V831,M2dock深度学习,性能大家好,我是芯板坊小月月,今天我们来聊聊荔枝刚上市的一款新品MAIXII开发板。板卡介绍继经典的K210MAIXI系列AIOT板卡之后,Sipeed继续推出多款可运行完整Linux新款树莓派Zero2W发布!博通4核64位CPU主频1GHz,性能提升5倍大家好,我是芯板坊小月月,今天给大家介绍一款树莓派基金会新推出了微型无线Zero2W开发板产品介绍树莓派Zero2W使用了树莓派3的BCM2710A1作为SoC。ARM内核的时钟频Java性能调优SQL篇优化分页查询作者浩说编程来源公众号浩说编程大厂技术资源研发必备安装包限时免费获取在日常的业务需求开发中,数据库分页通常被架构封装到方法中直接调用但在大数据量的情况下,分页查询是否存在效率问题?音频产业头部盛会第四届中国声音大会再度登陆上海普陀(10月22日,上海讯)在智能语音技术发展的背景下传统出版业正经历着一轮新的音频转向革命,基于用户的媒介审美需求和作为出版者的角色需求,音频出版的内涵与外延正在不断扩大。今日,第四河北第一只独角兽露出水面智慧互通科技有限公司(简称智慧互通)与中信建投签署上市辅导协议,拟在科创板上市,于年初在河北证监局备案。公司地址河北省张家口空港经济技术开发区一期十号楼智慧互通被称为智慧停车领域的绝配!宽带有了它,称号随便拿唉,天气好热啊每天一大早就听到同事们在抱怨出门一小时挤公交坐地铁好不容易来到公司插上电源打开电脑刚要整理文件没想到身上早已湿了一大片这天气真是热死人了啦还好我们有空调不然真的会热死怀疑人生!3999元拼多多买显卡2060主机,3A大作随便玩前几天准备买电脑,逛拼多多看到I510400FRTX2060的光追电竞游戏主机只卖3999元,当时就被震惊了,不敢相信居然这么便宜,反正有运费险,思来想去最后还是下了单。昨晚一到货须眉涡轮三叶剃须刀天降大任于米粉?剃须刀是男性必备的物品之一,基本上每个成年人都用过。今天要给大家带来的评测是须眉的一款新品,名字叫做天降大任须眉涡轮三叶剃须刀,废话不多说,下面就直接进入天降大任剃须刀的体验评测环就这?封停辛有志个人账号60天,罚款90万闹得沸沸扬扬的假燕窝事件,刷新了人们对直播带货的认知,也告诫大家理性消费,可以做粉丝,谁没个喜欢的人和事呢?但是要量力而行,脑子是个好东西,要时刻提醒自己自己是有思想和判断力的消费吉林省长韩俊抓紧推进俄煤印尼煤蒙古煤等外采计划吉林省长韩俊到部分供热发电企业和电力公司就煤炭保供电力稳供工作调研,并在国网吉林省电力公司调度全省电煤和电力供应情况,现场办公解决问题。面对当前煤炭资源紧缺问题,韩俊要求要多路并进任正非最敬佩的对手,早成立2年,1年花148亿研发,手握8万件专利说到任正非大家非常熟悉,但一直以来,他都有一个最敬佩的对手,比他早成立公司两年,1年在研发上的投入就能达到148亿,现在手里掌握着8万件专利。你知道任正非对手是谁吗?早成立2年,任