首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

三面面试官:运行 npm run xxx 的时候发生了什么?

面试官:停停,我问的不是从URL输入到页面展现到底发生什么?,是npm run xxx的时候,发生了什么。...[image.png] [image.png] .bin 目录,这个目录不是任何一个 npm 包。目录下的文件,表示这是一个个软链接,打开文件可以看到文件顶部写着 #!...所以在 npm install 时,npm 读到该配置后,就将该文件软链接到 ....假如我们在安装包时,使用 npm install -g xxx 来安装,那么会将其中的 bin 文件加入到全局,比如 create-react-app 和 vue-cli ,在全局安装后,就可以直接使用如...# unix 系默认的可执行文件,必须输入完整文件名 vue-cli-service # windows cmd 中默认的可执行文件,当我们不添加后缀名时,自动根据 pathext 查找文件 vue-cli-service.cmd

1.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    第六十八期:聊一聊Node程序调试(一)

    res.send(css) }) app.listen(3000) 然后我们开启(debug logging)调试日志: DEBUG=* node index.js 记得需要先安装下stylus依赖包,...这条信息告诉我们当前的服务器运行的是哪款软件,当然不公开这些信息,安全性相对来说会高一点。 这些调试日志可以帮助我们理解我们的应用是如何运行的,同时也可以让我们监控到一些我们不希望看到的内容。...只需要执行: DEBUG=express:* node index.js 这时候重新发送请求,就直接将stylus相关的日志过虑掉了。...当我们想看express相关的日志时,我们设置成了DEBUG=express:* 表示以express:开头的日志。 按照惯例,模块儿和框架一般使用冒号分割子命名空间。...在调试模块内部代码中,它们从process.env.DEBUG中读取数据,按空格,逗号进行分割,然后转换为正则表达式。

    41430

    架构初探 · 消息队列Kafka为什么这么快

    当消息流到达时,高速处理。毫无疑问,kafka是具备这些能力的。正如官网所说,kafka适合用来构建几个系统之间稳定可靠获取数据的实时数据流通。kafka适合用来构建实时数据处理的应用。...当我们的业务系统或者应用想要 读取磁盘文件的时候,操作系统会先分配一些内存,将数据先加载到这些内存 中,然后再由系统读取。...当我们的系统要将数据写入到磁盘,也会由操作系统先分配内存,数据会先写入内存,再有操作系统写入磁盘。而kafka就是基于这样的设计。...我们这里来思考一下,当我们业务系统要从kafka中读取数据的时候,是怎么个流程?...首先Kafka进程肯定先是从page cache中去读,没有读到就会从磁盘读取,当读到数据之后就会缓存到操作系统的一个page cache里面。

    43010

    到哪都有小林...

    最近有朋友跟我说,他在看面经的时候,到哪都有我的影子。 ? ? ? 这个挺让我意外的,没想到我的图解网络和图解系统已经慢慢传开了,形成一定的口碑了。不知道有多少读者是通过别人文章认识我的,哈哈。...操作系统在收到 UDP 报文后,会将其插入到队列里,队列里的每一个元素就是一个 UDP 报文,这样当用户调用 recvfrom() 系统调用读数据的时候,就会从队列里取出一个数据,然后从内核里拷贝给用户缓冲区...在发送端,当我们调用 send 函数完成数据“发送”以后,数据并没有被真正从网络上发送出去,只是从应用程序拷贝到了操作系统内核协议栈中。...当两个消息的某个部分内容被分到同一个 TCP 报文时,就是我们常说的 TCP 粘包问题,这时接收方不知道消息的边界的话,是无法读出有效的消息。 要解决这个问题,要交给应用程序。 如何解决粘包?...特殊字符作为边界 我们可以在两个用户消息之间插入一个特殊的字符串,这样接收方在接收数据时,读到了这个特殊字符,就把认为已经读完一个完整的消息。 HTTP 是一个非常好的例子。 ?

    59740

    pm2:从小白到写出一键部署前后端工程

    生成代码 可直接复制 可生成文件并下载 zip 包 拖拽自动生成 Form 表单 拖拽生成 form 表单,从左侧菜单栏中,将 form 元素拖到中间区域,可根据右上角的「N 列布局」输入你想要的...可以点击这里来使用。...bug 简介 该项目前后端分离,前端是react写的,后端是node写的一个非常小的服务,用于生成目录文件,以及压缩zip包来下载生成的代码。...pm2 start index.js --watch 这样启动的node进程,有个问题,就是我的下载文件xxx.zip文件是保存在tmp目录下,每当我一点下载的时候,node进程就会重启。...后来发现,去掉--watch不会重启,并且下载链接不会报错,但是,这时候,又出现了一个问题,就是,当代码有更新时,node服务并不会自动重新启动,这就又回到了“原始农业”时代,我觉得应该监控文件是可配置的

    85610

    localhost 和 127.0.0.1 有什么区别?

    前言 当前端开发人员在本地调试时,他们经常与本地主机交互,只需运行npm run在浏览器中打开他们的网页,地址栏显示类似http://localhost:xxx/index.html....打个比方,如果有人向您的公司发送包裹,递送单将包括公司的地址、名称和收件人等详细信息。投递过程依赖于地址进行路由,最终到达收件人。同样,在网络中,域名就像公司名称,IP 地址就像物理地址。...IP地址从哪里来?每台在线计算机都有一个IP地址,但个人计算机IP通常不适合公共访问,类似于公司内部位置,内部人员清楚,外部人员则不清楚。...有了IP地址,浏览器向该地址发送请求,由操作系统将请求封装成IP数据包,然后通过网络进行传输。网络的路由协议基于提供的 IP 地址并通过各种路由器,最终到达绑定到该 IP 的计算机。...但是当我们访问Baidu时,我们并没有指定端口。这是因为在未指定端口时,将使用默认端口(HTTP 为 80,HTTPS 为 443)。

    75810

    路上,小胖问我:Redis 主从复制原理是怎样的?

    runID,是每个 Redis 实例启动时都会自动生成的一个随机 ID,用来唯一标记这个实例。当从库和主库第一次复制时,因为不知道主库的 runID,所以将 runID 设为 “?”。...repl_backlog_buffer 是一个环形缓冲区,主库会记录自己写到的位置,从库则会记录自己已经读到的位置。 ?...环形缓冲区 如上图所示,还没断连时,主从指向同一个位置;主库写,从库读,一直往前走。突然,断连了,从库没法写、主库继续读。...恢复连接后,从库发送 psync {runID}{offset} 告诉主库,自己上次读到哪。...连接恢复后,主库根据从库上次读到的 offset 位置判断是否被覆盖?如果是, 从库连上主库后也只能乖乖地进行一次全量同步。

    40920

    第十二章:vue路由进阶使用

    默认情况下,当我们改变网页地址的时候,都会把新的页面压入到历史记录栈的顶部,同时把指针指向到这个最新的网页,每次改变了页面,当前页面的指针始终指向的是历史记录栈最顶部的那条记录;当我们通过浏览器的前进后退功能...当历史记录栈的存储的量超出这个限制后,历史记录的存储就会采取滚动的方式存储,也就是新的记录会压入到栈的顶部,最底部的记录会从栈的底部移除出去。...添加配置路由的守卫 router.beforeEach(function (to, from, next) { //to : 到哪里去 对象类型 将要访问的路由对象 //from: 从哪里来...2.6 路由的两种模式 hash模式 默认为hash模式 也就是说路径中带有​​​#​​ 并且这个#号后边的信息不会被发送到后台服务器中。...借助于第三方包 安装包: ​​npm i --save connect-history-api-fallback​​ node.js服务器中的文件: const express = require('express

    4700

    【 Node.js 进阶】你应该知道的 NPM 知识都在这!

    从npm 5.x开始,可以不用手动添加-S/--save指令,直接执行npm i packageName把依赖包添加到dependencies中去。...上面的这种当你的包安装到全局时:npm 会在 /usr/local/bin 下创建一个以 vm2 为名字的软链接,指向全局安装下来的 vm2 包下面的 "./bin/index.js"。...main 一个常用的npm包 { "main": "lib/index.js", } main 属性指定程序的主入口文件,其他项目在引用这个 npm 包时,实际上引入的是 lib/index 中暴露出去的模块...如果退出码不是0,npm 就认为这个脚本执行失败。 这里有的小伙伴可能会有疑问,node_modules目录下的.bin文件是哪里来的?...修改配置的命令为 npm config set, 我们使用相关的常见重要配置: proxy, https-proxy: 指定 npm 使用的代理 registry 指定 npm 下载安装包时的源,默认为

    1.5K10

    大数据开发:消息队列如何实现分布式事务?

    拿电商来举个例子,一般来说,用户在电商APP上购物时,先把商品加到购物车里,然后几件商品一起下单,最后支付,完成购物流程,就可以等待收货了。...这个过程中有一个需要用到消息队列的步骤,订单系统创建订单后,发消息给购物车系统,将已下单的商品从购物车中删除。...因为从购物车删除已下单商品这个步骤,并不是用户下单支付这个主要流程中必需的步骤,使用消息队里来异步清理购物车是更加合理的设计图片对于订单系统来说,它创建订单的过程中实际上执行了2个步骤的操作: 在订单库中插入一条订单数据...一致性:指这些数据在事务执行完成这个时间点之前,读到的一定是更新前的数据,之后读到的一定是更新后的数据,不应该存在一个时刻,让用户读到更新过程中的数据。 隔离性:指一个事务的执行不能被其他事务干扰。...如果在第四步提交事务消息时失败了,Kafka会直接抛出异常,让用户自行处理,可以在业务代码中反复重试提交,直到提交成功,或者删除之前创建的订单进行补偿。

    75630

    设置npm镜像_nodejs安装淘宝镜像

    将npm默认仓库地址改为淘宝镜像 由于网络的原因,使用npm进行项目初始化时间很长,甚至失败。...我的经验,如果在用npm install的时候,有个包安装语句长时间不动,不要等待,果断按CTRL + C退出,再等待下去没有一点意义。...---- 2022.06.08 感觉今时今日,项目越来越庞大,npm有很多问题。...当我们从GIT下载项目的时候,最好看看项目说明,看如何构建。有的是用pnpm,有的是用yarn,不一定非要用npm不可。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.1K30

    netty-pipeline和channel

    数据包从物理层一层层解析到应用层; 写数据时, 数据包从应用层一层层封装发再到物理层发出去。...Netty中的拆包/粘包 粘包半包现象: 尽管我们在应用层面使用了 Netty,但是对于操作系统来说,只认 TCP 协议,尽管我们的应用层是按照 ByteBuf 为 单位来发送数据,但是到了底层操作系统仍然是按照字节流发送数据...拆包和粘包是相对的,一端粘了包,另外一端就需要将粘过的包拆开,举个栗子,发送端将三个数据包粘成两个 TCP 数据包发送到接收端,接收端就需要根据应用协议将两个数据包重新组装成三个数据包。...,那就保留该数据,继续从 TCP 缓冲区中读取,直到得到一个完整的数据包 如果当前读到的数据加上已经读取的数据足够拼接成一个数据包,那就将已经读取的数据拼接上本次读取的数据,构成一个完整的业务数据包传递到业务逻辑...行拆包器 LineBasedFrameDecoder 从字面意思来看,发送端发送数据包的时候,每个数据包之间以换行符作为分隔,接收端通过 LineBasedFrameDecoder 将粘过的 ByteBuf

    87220

    Java面试锦囊(十二)-- Eureka与Zookeeper区别

    ,然后会将服务提供者地址缓存到本地,下次进行调用的时候,直接从本地缓存中读取,并且服务提供者会周期性(默认30S)向Eureka-server发送心跳,以证明该服务可用,如果eureka-server在一定时间...Consistency 一致性,理解为 当有一个写操作之后的读操作,就必须返回该值,假如server1中有一个变量i = 1,client向server1发起了一个写操作 i = 2 ,那么client读到的就是...Availability 可用性,意思就是server收到用户的请求,服务器就必须给出回应,不管是哪台服务器,只要收到,不管这个时候是i=1还是i=2 ,都要回应给客户,否则就不满足可用性。...Consistency 和 Availability 矛盾 当我们为了要保证一致性的时候,server1跟server2就必须数据同步,在同步的过程中,server2就必须有一个锁定的时间,只要同步完数据之后...只要有一台eureka还在,就能保证注册时可用的,保证了可用性。但是查询到的信息不一定是最新的,不保证强一致。

    54330

    char-dust 一个图片转字符画的 npm 包与示例站点

    Features 可自定义的图片大小 可自定义的字符串 线上方便快捷 可自定义缩放 textarea 方便全选复制 兼容 node 与 browser 的 npm 包 TypeScript 类型 npm...思路其实很简单,将图片读到 canvas 上,获取 ImageData,读取像素,通过 RGB 计算出灰度(亮度)。...当我们想要在 Node 端运行时,只需要再安装 jimp 与 @canvas/image-data 便可。 在国内镜像的加持下,也无需担心。 既然说到这了,就顺带再打个 nnrm 的广告。...作者则告诉我这是他六年前写的项目,那时候 npm 还不算个东西。(我的蹩脚翻译)不过他答应说会在关闭 Issue 前 publish 一个包。(但是直到三年后的今天,它还是 Open 的。)...---- 只是当我在 VSCode 里勤勤恳恳时,几小时前我尝试安装的 VSCode 彩虹屁插件 突然蹦出了一句话,「你这么喜欢写代码,一定没有女朋友吧」。 让人不禁潸然泪下。 ---- Q.E.D.

    1.4K30

    NPM使用方法

    通常情况下,当我们安装完成nodejs以后,npm也就随之安装了。...例如我们项目中用到了jQuery,很显然这是项目运行时需要的,那么在添加包时,使用如下命令进行安装: npm install jquery 而对于webpack等在开发时用于构建项目的包,我们仅在开发时用到...当用户使用npm install命令来安装我们的依赖项时,会从package.lock.json文件中进行安装。...官方文档:package.lock.json 安装包 当我们从别人的源代码初始化安装所有依赖的包时,使用如下命令: npm install 当我们为项目添加新的包时,使用如下命令: # 安装包 npm...: npm install webpack@5.50.0 从指定的源安装包: npm install -g cnpm --registry=https://registry.npm.taobao.org

    1.9K10
    领券