获得徽章 0
node 中 require 是怎么查找对应的包呢?node_modules 是如何找到文件的入口呢?
在 Node.js 中,`require` 函数用于引入模块。当调用 `require` 时,Node.js 会按照以下顺序查找对应的模块:

1. 首先,Node.js 会将 `require` 函数中给定的模块路径视为一个相对或绝对路径。
2. 如果路径是一个相对路径,Node.js 会将其相对于调用 `require` 的模块的位置进行解析。
3. 如果路径是一个绝对路径,Node.js 会直接使用该路径。
4. 如果模块路径不是一个相对或绝对路径,Node.js 会按照以下步骤查找模块:
- 首先,在内置模块中查找是否存在该模块。
- 如果在内置模块中找不到该模块,则 Node.js 会根据模块路径从当前目录的 `node_modules` 文件夹查找是否存在具有该模块名的文件夹。
- 如果当前目录的 `node_modules` 文件夹中没有找到该模块名的文件夹,则 Node.js 会继续向上一级目录查找,直到找到根目录为止,依次尝试 `node_modules` 文件夹里的模块名,直到找到该模块或者达到根目录。
5. 如果找到了模块所在的文件夹,Node.js 会首先查找该文件夹下是否存在一个 `package.json` 文件。
6. 如果存在 `package.json` 文件,并且该文件中有一个名为 `main` 的属性指定了入口文件,则 Node.js 会使用该入口文件。
7. 如果没有 `package.json` 文件或者该文件没有指定入口文件,则 Node.js 会尝试在该文件夹下查找一个名为 `index` 的文件作为入口文件。

总结来说,Node.js 会按照模块路径的先后顺序查找内置模块和 `node_modules` 文件夹,并根据 `package.json` 文件或者默认规则找到模块的入口文件。
展开
评论
今天星期五 双休 可以开始浪了
评论
摸了一天,啥也没干
评论
继续摸鱼 复习之前学习的东西 有过去了一天哇
评论
看面试题看的看不下去了家人们 飘了
评论
上 了一天班 学不动了 你们还在卷吗,不准卷了。在卷真要嘎了
评论
倒计时时间偏差问题解析
由于 setTimeout 和 setInterval 都是将对应的函数丢进任务队列,而不是立即执行,所以函数实际执行的时间一定是大于指定的时间间隔的,而不可能等于该时间。
这里涉及到 JS 的代码执行顺序问题, JS 属于单线程,代码执行的时候首先是执行主线程的任务,也就是同步的代码,如果遇到了函数或者异步的代码块,并不会立即执行,而是丢进对应的任务队列中,任务队列是先进先出,待主线程的代码执行完毕以后,才会依次的执行任务队列中的函数。所以,在执行对应的计时器任务时,是指定的时间间隔 + 主线程执行时间 + 任务队列前面函数的执行时间,必然是大于指定的计时器时间的。
因此,对于 setInterval 来说,每次将函数丢进任务队列中,而每次函数的实际执行时间又都是大于指定的时间间隔的,一旦执行的次数多了,误差就会越来越大。
展开
评论
打卡 每天一道算法题 看了会儿面试题 和 vue源码中午吃火锅噜
评论
一边上班一遍学习 南昌大学的饭菜是真不错哇 明天就是快乐星期四了
评论
还没下班 现在好饿 看个字节内部课 填补一下肚子 课程还蛮不错的 有源码的就好了哇
评论
这是因为在Js早期设计时,没有考虑到要对对象进行操作,而后面不知道要将这些操作的api放在哪里,于是一口气将这些api全部方法了Object上面。而Object作为一个构造函数,包含这些api显然不合适,而且还有类似in、delete这些操作,就让js看起来变的很奇怪。于是在ES6中,将这些操作就都放到了Reflect中。
评论
熟悉 前端基础知识,包括但不限于 Html Css Javascript ES6 等。
熟悉 Vue 及其周边工具,Vuex、Vue-router、Element Plus、Pina 等,了解过 Vue 及相关工具源码。
熟悉 小程序开发,能够使用开发工具独自开发微信小程序。
了解 前端常用布局,使用过 弹性布局、栅格布局、自适应布局。
了解 Node.js 使用过 Egg.js + MySql 开发过简易的管理后台。
了解 前端常用组件库 Axios Echarts 等, 框架 React、Redux。
了解 SSM、Springboot、若依、Linux 等后端技术
展开
评论
下一页
个人成就
文章被点赞 159
文章被阅读 14,122
掘力值 877
收藏集
0
关注标签
7
加入于